webForumDet fria alternativet

order by

Databaser & SQL

7 svar · 344 visningar · startad av neversleep

Medlem sedan okt. 2001230 inlägg
Frågan#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?

Medlem sedan juni 200032 967 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
Medlem 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.

Medlem sedan nov. 20022 355 inlägg
#4

ORDER BY tabel_namn DESC, not null

Medlem sedan juni 200032 967 inlägg
#5
select * from tbl order by case when fld is null then 1 else 0 end, fld
Medlem 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...

Medlem sedan juni 200032 967 inlägg
#7

De är la' bara att ändra villkoret.

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

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

264 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
114 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)