Fórum ordenação sql apenas pelos dois ultimos caracteres #151837
03/04/2003
0
os seguintes dados
01DV
03DV
04DV
se inserir o 02CA o campo finca assim
01DV
02CA
03DV
04DV
ele tem que ficar assim
02CA
01DV
03DV
04DV
como faço isso em SQL ?
Anonymous
Curtir tópico
+ 0Posts
04/04/2003
Adilsond
SUBSTRING(Campo FROM 1 FOR 2),
SUBSTRING(Campo FROM 3 FOR 2)
FROM tabela
order by 3,2
Gostei + 0
06/04/2003
Anonymous
porém ele não funcionou , pois diz que funcao substring nao existe,
executei as UDFs do interbase 6 e tentei substituir o nome SUSTRING para SUBSTR, mas tambem nao funcionou e a mensagem foi a seguinte
Invalid request BLR at offset 63
function SUBSTR is not defined
Gostei + 0
06/04/2003
Carlos Filho
Lamento informar, mas acho que o que voce quer nao e possivel...
em qualquer computador do mundo os caracteres alfanuméricos são ordendos da esqerda para a direita e primeiro os números depois as letras...
a ordem que se programa gera esta correta para o computador. Isso que voce quer fazer usa uma lógica diferente, ou seja, você quer ordenar primeiro as letras e depois os numeros...
uma maneira de fazer isso funcionar é simplesmente mudando os codigos para q eles se tornem algo como:
CA02
DV01
DV03
DV04
Ou seja, letras antes...
outra maneira de fazer isso é como AdilsonD respondeu, só que ele misturou delphi com SQL, por isso deu erro...
usando a estrategia dele, você deverá copiar cada um dos códigos em um StringList, passo a passo, verificando a ordem apenas das letras finais...
eu particularmente acho muito mais facil mudar o tipo de código: LETRAS ANTES E NUMEROS DEPOIS
espero ter ajudado.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)