sql >> Databáze >  >> RDS >> Sqlserver

Jak mohu zahrnout hodnoty null do MIN nebo MAX?

Je to trochu ošklivé, ale protože NULL s má pro vás zvláštní význam, toto je nejčistší způsob, jak to mohu udělat:

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

To znamená, že pokud některý řádek obsahuje NULL , chceme donutit, aby to byla odpověď. Pouze pokud žádné řádky neobsahují NULL měli bychom vrátit MIN (nebo MAX ).



  1. Nejlepší způsob, jak vybrat náhodné řádky PostgreSQL

  2. Metody řazení řádků na serveru SQL:ROW_NUMBER(), RANK(), DENSE_RANK() a NTILE()

  3. Jaký je rozdíl mezi zadním zaškrtnutím a hranatou závorkou v příkazech SQL?

  4. 5 hlavních výhod migrace do Azure SQL Database