Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Instrukcja CASE w klauzuli SQL WHERE

Od Twój komentarz .

Możesz użyć CASE oświadczenie w WHERE tak:

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

Tutaj musisz użyć ELSE 1=1 . w przeciwnym razie nie uzyskasz pożądanego rezultatu. Aby uzyskać więcej wyjaśnień, zobacz ten 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. Wyodrębnij dzień / miesiąc / rok ze znacznika czasu na MYSQL

  2. Dynamiczne konstruowanie kodu MySQL do tworzenia wyzwalacza

  3. Mysql pobiera wszystkie wiersze z limitem

  4. Jak dodawać i odejmować dzień, miesiąc, rok za pomocą MySql Query

  5. ORDER BY RAND() alternatywa