Ir para conteúdo
Fórum Script Brasil
  • 0

Consultar Intervalo De Registros


fiito

Pergunta

Ola a todos, tenho a seguinte tabela:

CODIGO TAMANHO COR

24715 P A

24715 P B

24715 P C

24715 M A

24715 M B

24715 M C

24715 G A

24715 G B

24715 G C

24715 10 A

24715 10 B

24715 10 C

24715 12 A

24715 12 B

24715 12 C

24715 14 A

24715 14 B

24715 14 C

24715 16 A

24715 16 B

24715 16 C

Gostaria de selecionar somente os registros compreendidos entre os tamanhos P e G, passando como parametro o tamanho inicial e final, no caso P e G e retornando o seguinte resultado:

CODIGO TAMANHO COR

24715 P A

24715 P B

24715 P C

24715 M A

24715 M B

24715 M C

24715 G A

24715 G B

24715 G C

alguém poderia me ajudar?

Desde já agradeço

Thiago

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
Guest --Thiago --
Primeiramente, bem-vindo ao fórum.

Isso pode ser feito se você usar campo numérico, pois com P, M e G não é possível estabelecer relação, a não ser de ordem alfabética (o que não resolveria o seu caso).

Abraços,

Beraldo

Muito obrigado Beraldo

Realmente era isso que eu imaginava, mas vou pensar em alguma outra coisa, valeu.

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Você pode fazer dessa forma:

SELECT * FROM `tabela` WHERE ASCII(`TAMANHO`) <= ASCII('P') AND ASCII(`TAMANHO` ) >= ASCII('G')
Rapaz... A tua dúvida me deu vontade de fazer umas tentativas com outros valores também (com dois caracteres), porém tive que dá uma ajeitadinha a mais no código e o resultado foi esse:
SELECT * FROM `tabela` WHERE (IF( LENGTH( `TAMANHO` ) =2, ASCII( LEFT( `TAMANHO` , 1 ) ) + ASCII( RIGHT( `TAMANHO` , 1 ) ) , ASCII( `TAMANHO` ) ))
<=
(IF(LENGTH('P') =2, ASCII( LEFT('P', 1 ) ) + ASCII(RIGHT('P', 1 ) ) , ASCII('P') )) AND (IF( LENGTH( `TAMANHO` )=2, ASCII( LEFT( `TAMANHO`, 1 ) ) + ASCII( RIGHT( `TAMANHO` , 1 ) ) , ASCII( `TAMANHO` ) ))
>=
(IF(LENGTH('G') =2, ASCII( LEFT('G', 1 ) ) + ASCII(RIGHT('G', 1 ) ) , ASCII('G') ))
Calma, calma... O código da clausula tabajara plus... :lol: faz o seguinte: 1. Ele verifica o tamanho da string, se for igual a 2 ele soma o código ASCII da primeira letra da string mais a segunda. Caso contrário ele só pega o código ascii da string. 2. Ele faz as comparações do intervalo de um valor e outro. Obs.: O parâmetro passado só pode ter no máximo 2 caracteres. Isso iria servir caso o tamanho do parâmetro passado fosse maior que 1, pois a função ASCII só retorna o valor do primeiro caracter da string. Exemplo:
SELECT ASCII('GG');
Teria o mesmo resultado que:
SELECT ASCII('G');
Já com a função tabajara plus :lol: o resultado seria mais ou menos assim:
SELECT ASCII( 'G' ) + ASCII( 'G' )

Bom... Coloquei aqui só para estudo mesmo :)

T+

André

Editado por ard-webmaster
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...