sql >> Database >  >> RDS >> Sqlserver

Hoe kan ik null-waarden opnemen in een MIN of MAX?

Het is een beetje lelijk, maar omdat de NULL s hebben een speciale betekenis voor jou, dit is de schoonste manier die ik kan bedenken om het te doen:

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

Dat wil zeggen, als een rij een NULL . heeft , willen we dwingen dat het antwoord te zijn. Alleen als er geen rijen een NULL bevatten moeten we de MIN return teruggeven (of MAX ).



  1. Perl DBI - voer SQL-script uit met meerdere instructies

  2. Selecteer op een eenvoudige manier de rechterkolom als primaire sleutel voor een bepaalde tabel

  3. Hoe PERIOD_ADD() werkt in MariaDB

  4. Hoe COALESCE() werkt in MariaDB