Mysql
 sql >> база данни >  >> RDS >> Mysql

Инструкция CASE в SQL клауза WHERE

От вашия коментар .

Можете да използвате CASE изявление в WHERE така:

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

Тук трябва да използвате ELSE 1=1 . в противен случай няма да постигнете желания резултат. За повече обяснения вижте този SQLFiddle



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sql - брои в множество колони

  2. По-ефективно ли е да се разделят големи и малки свързани данни в колоната на SQL таблица?

  3. Вземете резултати от MySQL с помощта на PDO

  4. MySQL заявка с условен израз?

  5. Нулирайте Root паролата на MySQL в Windows