sql >> Database teknologi >  >> RDS >> Sqlserver

SQL Server ORDER BY dato og nuller sidste

smalldatetime har rækkevidde op til 6. juni 2079, så du kan bruge

ORDER BY ISNULL(Next_Contact_Date, '2079-06-05T23:59:00')

Hvis ingen legitime optegnelser vil have den dato.

Hvis dette ikke er en antagelse, du har lyst til at stole på en mere robust mulighed, er sortering på to kolonner.

ORDER BY CASE WHEN Next_Contact_Date IS NULL THEN 1 ELSE 0 END, Next_Contact_Date

Begge ovenstående forslag er dog ikke i stand til at bruge et indeks for at undgå en sortering og give lignende planer.

En anden mulighed, hvis et sådant indeks eksisterer, er

SELECT 1 AS Grp, Next_Contact_Date 
FROM T 
WHERE Next_Contact_Date IS NOT NULL
UNION ALL
SELECT 2 AS Grp, Next_Contact_Date 
FROM T 
WHERE Next_Contact_Date IS NULL
ORDER BY Grp, Next_Contact_Date



  1. Er indlejrede transaktioner tilladt i MySQL?

  2. PostgreSQL indlejret JSON-forespørgsel

  3. Android sqlite db.query fører til CursorIndexOutOfBoundsException

  4. Regneark vs. databaser:Er det tid til at skifte? Del 2