sql >> Base de Datos >  >> RDS >> Sqlserver

¿Cómo puedo incluir valores nulos en un MIN o MAX?

Es un poco feo pero porque el NULL tiene un significado especial para ti, esta es la forma más limpia que se me ocurre de hacerlo:

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

Es decir, si alguna fila tiene un NULL , queremos forzar que esa sea la respuesta. Solo si ninguna fila contiene un NULL deberíamos devolver el MIN (o MAX ).