fiito Postado Julho 23, 2007 Denunciar Share Postado Julho 23, 2007 Ola a todos, tenho a seguinte tabela:CODIGO TAMANHO COR24715 P A24715 P B24715 P C24715 M A24715 M B24715 M C24715 G A24715 G B24715 G C24715 10 A24715 10 B24715 10 C24715 12 A24715 12 B24715 12 C24715 14 A24715 14 B24715 14 C24715 16 A24715 16 B24715 16 CGostaria 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 COR24715 P A24715 P B24715 P C24715 M A24715 M B24715 M C24715 G A24715 G B24715 G Calguém poderia me ajudar? Desde já agradeçoThiago Link para o comentário Compartilhar em outros sites More sharing options...
0 Beraldo Postado Julho 24, 2007 Denunciar Share Postado Julho 24, 2007 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 Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --Thiago -- Postado Julho 24, 2007 Denunciar Share Postado Julho 24, 2007 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,BeraldoMuito obrigado BeraldoRealmente era isso que eu imaginava, mas vou pensar em alguma outra coisa, valeu.Abraços Link para o comentário Compartilhar em outros sites More sharing options...
0 ARD Postado Julho 24, 2007 Denunciar Share Postado Julho 24, 2007 (editado) 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 Julho 24, 2007 por ard-webmaster Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
fiito
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