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

Câu lệnh CASE trong mệnh đề WHERE của SQL

Từ nhận xét của bạn .

Bạn có thể sử dụng CASE câu lệnh trong WHERE như thế này:

SELECT count(enq_id) AS total, sum(purchase_amount) AS purchase
FROM temp_stock
WHERE purchase_date <> '0000-00-00'
AND purchase_date < '2012-08-01'
AND (    STATUS = 'Sold'
      OR STATUS = 'In Stock'
      OR STATUS = 'Ref')
AND CASE STATUS 
         WHEN 'Sold' 
         THEN delivery_date >= '2012-08-01'
         ELSE 1=1
    END

Ở đây bạn cần sử dụng ELSE 1=1 . nếu không bạn sẽ không nhận được kết quả mong muốn. Để biết thêm giải thích, hãy xem SQLFiddle này



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql / php đây có phải là cách an toàn để kết nối với mysql DB không?

  2. Muốn lưu trữ đối tượng trong cơ sở dữ liệu MySQL

  3. Buộc ngủ đông để tạo bảng sau khi thả và tạo lại cơ sở dữ liệu

  4. cập nhật / làm mới dữ liệu listview android mà không cần đóng ứng dụng

  5. Cách kết nối Google Cloud SQL với C #