Baserat på vad du har sagt i kommentarsfältet tror jag att du måste ändra ett kodavsnitt...
- Vad jag vill är att kortet inte ska ha
field14
som'Test card'
(t1.field14 <> 'Test Card' and t1.field14 is null)
=>
(t1.field14 <> 'Test Card' OR t1.field14 is null)
Skapa en logiktabell för att kontrollera om du verkligen vill ha AND
eller om du vill ha 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
REDIGERA Följ upp för att kommentera
Använda OR
i koden ovan kan inte ge TRUE
när Field14
är 'Test card'
. Båda testerna ger FALSE
och så resultatet måste vara FALSE
.
Du måste bryta ner saker i etapper. Felsökning bör göras genom att testa bitar åt gången och gradvis bevisa vad som fungerar för att isolera det som inte gör det. Försök aldrig att reda ut allt på en gång, förhåll dig metodiskt.
Kör det här testet...
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