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

MySQL trả về giá trị tối đa hoặc null nếu một cột không có giá trị

Tôi không biết nó sẽ nhanh như thế nào nhưng tôi đoán nó có thể được giải quyết như thế này:

SELECT ID, min(ORDER_DATE) AS OD,
IF(COUNT(*)=COUNT(CANCEL_DATE),max(CANCEL_DATE),NULL) AS CD 
FROM stats GROUP BY CLIENT

Tôi không thể kiểm tra nó nhưng ý tưởng đằng sau giải pháp này là count(cancel_date) nên đếm tất cả các mục nhập giá trị không rỗng và nếu nó bằng count(*) điều đó có nghĩa là không có giá trị null nào và nó sẽ trả về max(cancel_date) , nếu không thì null.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JDBC chuyển đổi Dấu thời gian thành NULL (vấn đề zeroDateTimeBehavior)

  2. Tiếp cận nhiều truy vấn MySQL với Node.js

  3. Nhúng mysql vào ứng dụng java trên máy tính để bàn

  4. Ví dụ về CURRENT_TIMESTAMP - MySQL

  5. Làm cách nào để chèn một mảng giá trị vào các cột khác nhau của bảng mysql?