|
| Sortering i Delphi / Firebird Fra : Ukendt |
Dato : 21-06-09 20:38 |
|
Hej.
Jeg har en Delphi application med tilknyttet Firebird database.
Et felt i databasen er af typen varchar(10), da feltet både kan indeholde
tekst, tal eller en kombination heraf. Den bliver sorteret stigende.
Eksempel:
156
22
3632
Prøve
Test
I min verden - og i den verden, som applikationen skal afspejle - er det en
forkert sortering idet den korrekte sortering skal være:
22
156
3632
Prøve
Test
Kan det overhovedet lade sig gøre med et felt af typen varchar(10) eller er
der kun muligheden for førnævnte "fejlsortering" eller alternativt at
indskrænke mig til kun at lagre rene tal i feltet og ændre typen til
integer?
| |
Uffe Kousgaard (21-06-2009)
| Kommentar Fra : Uffe Kousgaard |
Dato : 21-06-09 21:18 |
|
"Michael Sørensen" <.> wrote in message
news:4a3e8c13$0$25200$ba624c82@nntp02.dk.telia.net...
>
> 22
> 156
> 3632
> Prøve
> Test
>
> Kan det overhovedet lade sig gøre med et felt af typen varchar(10)
Så længe det er et tekst-felt, så er det den normale sortering. Du kan evt.
tilføje nuller eller _ foran dine cifre, så vil sorteringen blive som du
ønsker, men det vil jo så give andre problemer.
| |
jos (22-06-2009)
| Kommentar Fra : jos |
Dato : 22-06-09 10:13 |
|
Uffe Kousgaard wrote:
> "Michael Sørensen" <.> wrote in message
> news:4a3e8c13$0$25200$ba624c82@nntp02.dk.telia.net...
>>
>> 22
>> 156
>> 3632
>> Prøve
>> Test
>>
>> Kan det overhovedet lade sig gøre med et felt af typen varchar(10)
>
> Så længe det er et tekst-felt, så er det den normale sortering. Du
> kan evt. tilføje nuller eller _ foran dine cifre, så vil sorteringen
> blive som du ønsker, men det vil jo så give andre problemer.
Nu er det [mange] år siden jeg programmerede, men kan du ikke lave et index
efter foranstillet nuller hvis asc ligger mellem 31 og 39?
pseudo:
if asc(nummer) >30 and asc(nummer) <39
then
index(værdi) val(nummer) = str(nummer format 000#)
else
indexværdi = nummer
finn
| |
|
|