我正在解決更大的問題,但已將其縮小到此,以便使此問題更容易提出。SQL其中Column1 = Column1將只返回非空值
下面的查詢:
Select * from User where Country = Country
將只返回行,其中國家不爲空。我期望如果Column1爲空,它會返回它,因爲NULL = NULL。
任何意見,爲什麼這不工作,我期望的任何輸入?
編輯:
我試圖做到這一點:
Select * from User where Country = coalesce(@Country, Country)
如果我的變量@Country是空的,我想它拉一切。
正確,NULL不等於NULL,因爲兩者都未定義,因此無法評估兩者的相等性。 –
「NULL永遠不等於NULL」 - 不正確。提示:「GROUP BY」和「ORDER BY」。 – onedaywhen
@onedaywhen:你在'distinct'(定義在SQL:2003 3.1.6.8')和'equal'(在SQL:2003 3.1.6.13'中定義)混淆。這些是'SQL'中的不同概念,'GROUP BY'組''不明確'值。 – Quassnoi