コメント セクションでの発言に基づいて、コードの 1 つのスニペットを変更する必要があると思います...
- カードに
field14
を含めないでほしい as'Test card'
(t1.field14 <> 'Test Card' and t1.field14 is null)
=>
(t1.field14 <> 'Test Card' OR t1.field14 is null)
本当に AND
が必要かどうかを確認する論理テーブルを作成します または OR
が必要な場合
field14 | (field14 <> 'Test Card') | (t1.field14 is null) | A OR B | A AND B
--------------------------------------------------------------------------------
'Test Card' | FALSE | FALSE | FALSE | FALSE
NULL | NULL | TRUE | TRUE | FALSE
'Any Card' | TRUE | FALSE | TRUE | FALSE
編集 フォローアップしてコメント
OR
の使用 上記のコードでは TRUE
を生成できません Field14
の場合 'Test Card'
です .どちらのテストでも FALSE
が返されます したがって、結果は FALSE
でなければなりません .
物事を段階的に分解する必要があります。デバッグは、一度にいくつかの部分をテストし、機能しないものを分離するために機能することを徐々に証明することによって行う必要があります。一度にすべてを整理しようとせず、整然と物事に取り組みます。
このテストを実行...
SELECT
*,
CASE WHEN field14 <> 'Test Card' THEN 1 ELSE 0 END Test1,
CASE WHEN field14 IS NULL THEN 1 ELSE 0 END Test2,
CASE WHEN field14 <> 'Test Card' OR field14 IS NULL THEN 1 ELSE 0 END 1_OR_2,
CASE WHEN field14 <> 'Test Card' AND field14 IS NULL THEN 1 ELSE 0 END 1_AND_2
FROM
tblCustomer