ordenar numero no formato string

Delphi

01/04/2009

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

Curtidas 0

Respostas

Lehapan

Lehapan

01/04/2009

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



GOSTEI 0
Betofrasson

Betofrasson

01/04/2009

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?


GOSTEI 0
Lehapan

Lehapan

01/04/2009

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


GOSTEI 0
Lehapan

Lehapan

01/04/2009

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


GOSTEI 0
Betofrasson

Betofrasson

01/04/2009

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


GOSTEI 0
POSTAR