Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Pernyataan CASE dalam klausa SQL WHERE

Dari komentar Anda .

Anda dapat menggunakan CASE pernyataan di WHERE seperti ini:

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

Di sini Anda perlu menggunakan ELSE 1=1 . jika tidak, Anda tidak akan mendapatkan hasil yang diinginkan. Untuk penjelasan lebih lanjut lihat SQLFiddle ini



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Halaman Kosong Di Sisi Admin Opencart

  2. Gabung - bidang di tabel 2 menimpa yang ada di tabel 1

  3. DAPATKAN parameter yang rentan terhadap SQL Injection - PHP

  4. masalah menginstal Perl DBI-mysql di windows

  5. BUAT JENIS di MySQL