Berdasarkan apa yang Anda katakan di bagian komentar, saya pikir Anda perlu mengubah satu potongan kode...
- Yang saya inginkan adalah kartu itu tidak boleh memiliki
field14
sebagai'Test card'
(t1.field14 <> 'Test Card' and t1.field14 is null)
=>
(t1.field14 <> 'Test Card' OR t1.field14 is null)
Buat tabel logika untuk memeriksa apakah Anda benar-benar ingin AND
atau jika Anda ingin 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
EDIT Tindak lanjuti untuk berkomentar
Menggunakan OR
dalam kode di atas tidak dapat menghasilkan TRUE
ketika Field14
adalah 'Test Card'
. Kedua pengujian menghasilkan FALSE
dan hasilnya harus FALSE
.
Anda perlu memecahnya secara bertahap. Debugging harus dilakukan dengan menguji potongan pada satu waktu dan secara bertahap membuktikan apa yang berhasil untuk mengisolasi apa yang tidak. Jangan pernah mencoba menyelesaikan semuanya sekaligus, lakukan pendekatan secara metodis.
Jalankan tes ini...
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