SQL server: sorting von NULL Marks mit ORDER BY-Klausel

Ich habe diese Frage:

SELECT orderid, shippeddate FROM Sales.Orders WHERE custid = 20 ORDER BY shippedate; 

und die Ausgabe ist:

 orderid shippeddate ------- ----------- 11008 NULL 11072 NULL 10258 2006-07-23 00:00:00.000 10263 2006-07-31 00:00:00.000 10351 2006-11-20 00:00:00.000 10368 2006-12-02 00:00:00.000 ... 

Als Übung versuche ich herauszufinden, wie man die Aufträge von shippeddate aufsteigend shippeddate , aber NULLs sortieren zuletzt

Ich weiß, dass standard SQL die Optionen NULL FIRST und NULL LAST , aber T-SQL unterstützt diese Option nicht.

Irgendwelche Vorschläge?

Vielen Dank

   

Du kannst so etwas machen:

 SELECT orderid, shippeddate FROM Sales.Orders WHERE custid = 20 ORDER BY case when shippeddate is null then 2 else 1 end, shippedate; 

In Ergänzung,

Sie können den Wert im Feld replace, wenn es null ist, indem Sie ISNULL verwenden

 ISNULL ( check_expression , replacement_value ) 

Also würde deine Frage so aussehen

 SELECT ISNULL(orderid, '1900-01-01'), shippeddate FROM Sales.Orders WHERE custid = 20 ORDER BY shippedate asc; 

So würde dies irgendwelche NULLs in diesem Feld mit einem Wert (1900-01-01 in diesem Fall) replace, die du sortieren kannst