Com base no que você disse na seção de comentários, acho que você precisa alterar um trecho de código ...
- O que eu quero é que o cartão não tenha
field14
como'Test card'
(t1.field14 <> 'Test Card' and t1.field14 is null)
=>
(t1.field14 <> 'Test Card' OR t1.field14 is null)
Construa uma tabela lógica para verificar se você realmente deseja
AND
ou se você quiser 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
EDITAR Siga para comentar
Usando
OR
no código acima não pode gerar TRUE
quando Field14
é 'Test card'
. Ambos os testes geram FALSE
e assim o resultado deve ser FALSE
. Você precisa quebrar as coisas em etapas. A depuração deve ser feita testando partes de cada vez e provando gradualmente o que funciona para isolar o que não funciona. Nunca tente resolver tudo de uma vez, aborde as coisas metodicamente.
Faça este teste...
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