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
field14
comme'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