sql >> データベース >  >> RDS >> Mysql

SQLWHERE句のCASEステートメント

    コメント から 。

    CASEを使用できます WHEREのステートメント このように:

    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
    

    ここでは、ELSE 1=1を使用する必要があります 。そうしないと、望ましい結果が得られません。詳細については、このSQLFiddle を参照してください。



    1. テーブルの行間の平均時間差を見つける方法は?

    2. MySQLは左結合がnullである行を選択します

    3. MySQLサブクエリ-MySQL3.23

    4. SQLServerの地理データ型を理解する方法