D'après ce que vous avez dit dans la section des commentaires, je pense que vous devez modifier un extrait de code...
- Ce que je veux, c'est que cette carte n'ait pas de
field14comme'Test card'
(t1.field14 <> 'Test Card' and t1.field14 is null)
=>
(t1.field14 <> 'Test Card' OR t1.field14 is null)
Construisez une table logique pour vérifier si vous voulez vraiment AND ou si vous voulez 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
MODIFIER Suivre pour commenter
Utiliser OR dans le code ci-dessus ne peut pas donner TRUE quand Field14 est 'Test card' . Les deux tests donnent FALSE et donc le résultat doit être FALSE .
Vous devez décomposer les choses par étapes. Le débogage doit être effectué en testant des pièces à la fois et en prouvant progressivement ce qui fonctionne pour isoler ce qui ne fonctionne pas. N'essayez jamais de tout trier d'un coup, approchez-vous méthodiquement.
Exécutez ce test...
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