Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Làm cách nào để đưa các giá trị rỗng vào MIN hoặc MAX?

Nó hơi xấu nhưng vì NULL có một ý nghĩa đặc biệt đối với bạn, đây là cách tốt nhất mà tôi có thể nghĩ để làm điều đó:

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

Nghĩa là, nếu bất kỳ hàng nào có NULL , chúng tôi muốn buộc đó phải là câu trả lời. Chỉ khi không có hàng nào chứa NULL chúng ta có nên trả về MIN không (hoặc 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. Cách khôi phục cơ sở dữ liệu từ C #

  2. kiểu dữ liệu tương đương mysql

  3. Cách khắc phục “Tên đối tượng‘ OPENJSON ’không hợp lệ.” trong SQL Server

  4. Cách trả lại tất cả các ràng buộc kiểm tra bị vô hiệu hóa trong SQL Server (Ví dụ T-SQL)

  5. Nhận nhiều giá trị trong con trỏ máy chủ SQL