Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak mogę uwzględnić wartości null w MIN lub MAX?

To trochę brzydkie, ale ponieważ NULL mają dla Ciebie szczególne znaczenie, to najczystszy sposób, jaki mogę sobie wyobrazić, aby to zrobić:

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

Oznacza to, że jeśli dowolny wiersz ma NULL , chcemy wymusić, aby była to odpowiedź. Tylko jeśli żaden wiersz nie zawiera NULL czy powinniśmy zwrócić MIN (lub MAX ).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przedstawiamy nową funkcję — analizę zakleszczeń

  2. Podłączanie SQL Server do PostgreSQL

  3. Tworzenie złożonego klucza podstawowego w SQL Server

  4. Jak podzielić ciąg i wstawić wartości do tabeli w SQL Server

  5. Jak działa OBJECTPROPERTYEX() w SQL Server