Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wie kann ich Nullwerte in ein MIN oder MAX einschließen?

Es ist ein bisschen hässlich, aber weil der NULL s haben eine besondere Bedeutung für Sie, dies ist die sauberste Art, die ich mir vorstellen kann:

SELECT recordid, MIN(startdate),
   CASE WHEN MAX(CASE WHEN enddate IS NULL THEN 1 ELSE 0 END) = 0
        THEN MAX(enddate)
   END
FROM tmp GROUP BY recordid

Das heißt, wenn eine Zeile einen NULL enthält , das wollen wir als Antwort erzwingen. Nur wenn keine Zeilen einen NULL enthalten sollen wir den MIN zurückgeben (oder MAX ).