我有一個查詢連接三個表並返回一個別名計算作爲最後一個字段。當加入的字段中存在空值時,該值通常爲空。加入效果很好。使用WHERE IS NULL返回所有值
我想只返回記錄,我在計算字段中得到空值。
但是,如果我添加
WHERE field_name IS NULL
到最後我沒有得到任何記錄
如果我添加
WHERE field_name IS NOT NULL
我得到的一整套,我可以看到幾個記錄爲事實null
任何解釋爲什麼或如何解決這個問題?
編輯:我找到了我的情況的解決方案。字段名稱是上面計算的別名。當我在where子句中複製計算時,不是放置別名,而是正確運行。
你確定它們是實際的'NULL'而不是字符串''NULL''嗎?您可能不得不展示更多的查詢。 –
我認爲這會有助於我們看到你正在計算的連接和表達式。 – shawnt00
哦。只是一個想法 - 你是否在你的'SELECT'子句中沿'a * b * field_value * c'的行作爲field_value' - 即創建一個與現有列名稱匹配的別名?因爲如果是這樣的話,請注意在''SELECT'之前運行'WHERE',所以它會過濾*列*,而不是你的計算值。 –