sql >> Databasteknik >  >> RDS >> Mysql

CASE-sats i SQL WHERE-sats

Från din kommentar .

Du kan använda CASE uttalande i WHERE så här:

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

Här måste du använda ELSE 1=1 . annars får du inte önskat resultat. För mer förklaring se denna SQLFiddle



  1. MySQL ODBC-kontakt 32bit eller 64bit?

  2. PHP PDO Mysql Insert Performance

  3. Byt Oracle-port från port 8080

  4. INFOGA och UPPDATERA en post med hjälp av markörer i Oracle