sql >> Database teknologi >  >> RDS >> Mysql

CASE-sætning i SQL WHERE-sætning

Fra din kommentar .

Du kan bruge CASE sætning i WHERE sådan her:

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

Her skal du bruge ELSE 1=1 . ellers får du ikke det ønskede resultat. For mere forklaring se denne SQLFiddle



  1. Hvor mange kolonner kan du have (maksimalt) i en MySQL-tabel?

  2. Hvordan fortæller man node.js, at mysql ikke kører på standardporten?

  3. Use Cases for SQL Server MERGE Statement:Synkronisering af online- og historietabeller

  4. hvad er hurtigere, count(*) eller count(table_field_name) i mysql?