2016-07-05 1 views
0

私はSQLでスクリプトを実行していますが、ロジックを歩き回っています。これは一般的な構造です:SQLでAND IF .. = 0を理解しています

SELECT 
... 
FROM 
... 
WHERE 
... 
AND IF (order belongs to x,y,z, 1, IF (order was booked before this data, 1,0)) = 0 

最後の行では、何が= 0を意味するのでしょうか?

+1

コードの全文を入力してください。そうでないと、何を求めているのか判断できません。 –

+2

IFは標準SQLではありません - あなたはどのプラットフォームを使用していますか? – Hogan

+0

これは何ですか? –

答えて

0

文が問合せ

IF (order belongs to x,y,zための望ましい結果である場合は、ネストされたの偽の値を意味します - ステートメントが評価されている場合はtrue値が1、もし、ネストされた後、falseになります。

IF (order was booked before this data 

- これが真の場合、値は1になります。値がfalseの場合、値は0になります。

IFステートメントの結果は、最終的には= 0であるかどうかが評価されます。

基本的に、注文がx、y、zに属していれば、レコードは含まれていません。また、この日付より前に注文が予約されていても、レコードは含まれません。

もっと標準的な方法でロジックを表現する。

SELECT * 
FROM 
    TableName 
WHERE 
    Order NOT IN (x,y,z) 
    AND OrderDate >= somedate 
関連する問題