sql >> Database >  >> RDS >> Mysql

CASE-instructie in SQL WHERE-clausule

Van uw opmerking .

U kunt CASE . gebruiken statement in WHERE zoals dit:

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

Hier moet je ELSE 1=1 . gebruiken . anders krijg je niet het gewenste resultaat. Voor meer uitleg zie deze SQLFiddle



  1. Voordelen van pdo boven mysql_* of mysqli_*

  2. Hoe kan ik categorieën, subcategorieën, sub-subcategorieën in de geselecteerde lijst weergeven - php/mysql?

  3. verifiëren_queryable_inventory heeft ORA-2008 geretourneerd:time-out

  4. Elimineer en verminder overlappende perioden