NULL waarden laatst sorteren in MSSQL

16-09-2011 | Marcel van Langen | ColdFusion | sortering, sort, Microsoft, SQL Server

Ieder DBMS dat gebaseerd is op SQL doet dit identiek: wanneer op een kolom wordt gesorteerd waarin ook NULL waarden zijn opgenomen, worden deze als eerste getoond. Dit is lang niet altijd gewenst. Bij het ombouwen van bestaande code kwam ik een programmatische oplossing tegen, ingebakken in ColdFusion. Dat kan beter (en sneller).

Een mogelijkheid is om in je SQL code een afgeleide kolom op te nemen en deze te vullen via een CASE statement. Maar ja, dan heb je weer een extra kolom. Wil je deze extra kolom kwijt dan moet je teruggrijpen op een TEMP tabe. Dat is allemaal niet zo netjes. Gelukkig is er een alternatief. Daarvoor laat ik je eerst de code zien (waarbij de kolom loc_name ook NULL waarden bevat):

SELECT loc_id, loc_uuid, loc_name
FROM location
ORDER BY CASE WHEN loc_name IS NULL THEN 1 ELSE 0 END, loc_name ASC

Een CASE statement in een ORDER BY. Zo simpel kan het zijn.

Over Morloff

Morloff ontwerpt en realiseert succesvolle webtoepassingen op het gebied van procesoptimalisatie, eCommerce en rapportage door de inzet van moderne webtechnieken, sociale media en zoekmachine optimalisatie.

over ons | diensten | portfolio | contact | route

naar website IJsmonster.nl naar website ICT intermediairs naar website marcelvanlangen.com

Twitter

Morloff

Cuneraweg 169a
3911 RH Rhenen

M +31 (0)6 - 515 96 189
W www.morloff.nl
E contactformulier

Morloff op Twitter Morloff op Facebook Morloff op LinkedIn Morloff via RSS