Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como posso incluir valores nulos em um MIN ou MAX?


É um pouco feio, mas porque o NULL s têm um significado especial para você, esta é a maneira mais limpa que posso pensar de fazer isso:
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

Ou seja, se alguma linha tiver um NULL , queremos forçar que seja a resposta. Somente se nenhuma linha contiver um NULL devemos retornar o MIN (ou MAX ).