Baseret på det, du har sagt i kommentarfeltet, tror jeg, du skal ændre ét kodestykke...
- Det, jeg ønsker, er, at kortet ikke skal have
field14
som'Test card'
(t1.field14 <> 'Test Card' and t1.field14 is null)
=>
(t1.field14 <> 'Test Card' OR t1.field14 is null)
Opbyg en logiktabel for at kontrollere, om du virkelig vil have AND
eller hvis du vil have 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
REDIGER Følg op for at kommentere
Brug OR
i koden ovenfor kan ikke give TRUE
når Field14
er 'Test card'
. Begge test giver FALSE
og derfor skal resultatet være FALSE
.
Du skal bryde tingene ned i etaper. Fejlretning bør udføres ved at teste stykker ad gangen og gradvist bevise, hvad der virker for at isolere, hvad der ikke gør. Forsøg aldrig at ordne alt på én gang, gribe tingene metodisk an.
Kør denne 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