Fórum ordenar numero no formato string #369533

01/04/2009

0

ajudinha ai pessoal

tenho um campo no banco de dados -> nparcela do tipo string
1ª parcela
2ª parcela
3ª parcela
.
.
11ª parcela
12ª parcela

quero ordenar por numero da parcela
se eu utilizo um order by nparcela ele ordena
1ª parcela
11ª parcela
12ª parcela
2ª parcela
3ª parcela

como eu faço para ordenar certinhu, tem como?
desde já agradeço.


Betofrasson

Betofrasson

Responder

Posts

01/04/2009

Lehapan

Caro betofrasson.

para o Firebird 2.1, pode ser utilizado o código abaixo:

SELECT
  CAST( REPLACE(nparcela, ´ª parcela´, ´´) AS INTEGER) AS NumParcela
FROM
  NOME_DA_TABELA
ORDER BY
  NumParcela



Responder

Gostei + 0

01/04/2009

Betofrasson

lehapan, agradeço a ajuda
mais não deu certo aqui não
não sei se eh eu que estou fazendo errado.

DM.ParcelasQuery.SQL.Add(´select CAST(REPLACE(nparcela, ´ªParcela, ´) as integer) as numparcela from parcelas where idcarne=1 order by numparcela´);


tem aspa em lugar errado ai neh?


Responder

Gostei + 0

01/04/2009

Lehapan

tente colocar assim:
[/code]
DM.ParcelasQuery.SQL.Add(´select CAST(REPLACE(nparcela, ´ + QuotedStr(´ªParcela´) + ´, ´) as integer) as numparcela from parcelas where idcarne=1 order by numparcela´);[/code]

pois o ´ªParcela´ é uma string e no SQL deve estar entre aspas


Responder

Gostei + 0

01/04/2009

Lehapan

desculpe, consegui escrever errado...
segue o certo
DM.ParcelasQuery.SQL.Add(´SELECT CAST(REPLACE(nparcela, ´ + QuotedStr(´ªParcela´) + ´, ´ + QuotedStr(´´) + ´) AS INTEGER) AS NumParcela FROM PARCELAS WHERE idcarne=1 ORDER BY NumParcela´);


qualquer coisa é só perguntar


Responder

Gostei + 0

01/04/2009

Betofrasson

eu até ia te falar.. pq tinha testado direto no banco e tinha dado certo..
mais funcionou certinho lehapan..
valeu ai cara.. abraço..


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar