webForumDet fria alternativet

order by

7 svar · 342 visningar · startad av neversleep

neversleepMedlem sedan okt. 2001230 inlägg
#1

Hejsan

Jag behöver sortera en tabell från A-Ö. Problemet är att fältet jag sorterar efter ibland är tomt och då hamnar de raderna först i sorteringen.
Jag vill att sorteringen sker från A-Ö och att efter Ö kommer de rader med tomma fält. Kan man påverka det i order by på något sätt?

@ndersMedlem sedan juni 200032 969 inlägg
#2

Ja, men som så mycket annat beror det på vilken dbms du använder. Om det är Access:

select * from tbl order by iif(fld is null, 1, 0), fld
neversleepMedlem sedan okt. 2001230 inlägg
#3

rackarns snabbt svar.

det är ms sql server.
Och fältet är inte null utan en en tom sträng, om det spelar någont roll.

Mc FettoMedlem sedan nov. 20022 355 inlägg
#4

ORDER BY tabel_namn DESC, not null

@ndersMedlem sedan juni 200032 969 inlägg
#5
select * from tbl order by case when fld is null then 1 else 0 end, fld
neversleepMedlem sedan okt. 2001230 inlägg
#6

ORDER BY tabel_namn DESC, not null ger sql error i msSql

"select * from tbl order by case when fld is null then 1 else 0 end, fld"
fungerar, ger inte error iaf, dock gör det ingen skillnd eftersom fältet är en tom sträng och inte null.
testade med
"select * from tbl order by case when fld is [ ] then 1 else 0 end, fld" men det fungerade sämre...

@ndersMedlem sedan juni 200032 969 inlägg
#7

De är la' bara att ändra villkoret.

select * from tbl order by case when fld = '' then 1 else 0 end, fld
neversleepMedlem sedan okt. 2001230 inlägg
#8

japps, om man inte definierade mellanslag med " " som jag försökte..
tackarrr!

130 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)