Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment puis-je inclure des valeurs nulles dans un MIN ou un MAX ?

C'est un peu moche mais parce que le NULL s ont une signification particulière pour vous, voici la façon la plus propre de le faire :

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

Autrement dit, si une ligne a un NULL , nous voulons forcer cela à être la réponse. Uniquement si aucune ligne ne contient un NULL doit-on retourner le MIN (ou MAX ).