2
これは私にとって困惑しています。私は次のクエリがあります。それがあるべきとおりどこにNON NULL値を返すNULL句がありますか
SELECT *
FROM table.contract
WHERE end_date IS NULL
AND LOWER(NAME) LIKE 'name'
OR LOWER(NAME) LIKE '%name1%'
OR LOWER(NAME) LIKE '%name2%'
を、END_DATEがNULLでどこに行のみを返す必要がありますが、私はそれらに日付を持つ行を取得しています。
データ型はDATEで、データの既定値は(null)なので、なぜ日付とともにいくつかの行が返される理由はわかりません。私はちょうど脳のおならを持っていますか?金曜日ですので、何か簡単なことがないと謝罪します。
ご協力いただければ幸いです!
編集:私はかなりばかです。
SELECT *
FROM table.contract
WHERE end_date IS NULL
AND (LOWER(NAME) LIKE 'name'
OR LOWER(NAME) LIKE '%name1%'
OR LOWER(NAME) LIKE '%name2%')
あなたは、あなたのフィルタリストにORを持つ – Mihai
、演算子の優先順位に興味があるかもしれません。私はあなたがどこかで括弧を使うことを意図していると思います。 –
ヒント:1 + 1 * 8と(1 + 1)* 8の違いは何ですか? – dfundako