我有一個存儲過程,可以根據爲特定類型提供參數的用戶檢索結果。用戶也可以提供一個空參數,在這種情況下返回所有結果並忽略過濾器。SQL LEFT OUTER JOIN在可空列和合並的使用
這裏是存儲過程:
CREATE PROCEDURE GetHousesByType
(
@HouseTypeParameter INT = NULL,
)
AS
BEGIN
SELECT HouseId, HouseType, HouseName
FROM HouseTable MAIN
LEFT JOIN HouseTypes HOTP ON MAIN.HouseType = HOTP.HouseTypeId
WHERE MAIN.HouseType = COALESCE(@HouseTypeParameter, MAIN.HouseType)
的問題是,有時候,我參加在HouseType列可以爲空。
我想返回所有列,即使HouseType欄爲空,但只有當@HouseTypeParameter IS NULL
香港專業教育學院嘗試添加下列到查詢
WHERE MAIN.HouseType = COALESCE(HouseType, MAIN.HouseType) OR MAIN.HouseType IS NULL
的條件但是,無論用戶將HouseType參數設置爲什麼,這都會得到空值。
任何幫助將是偉大的!
哪個表的'HouseType'列可以是'NULL'? – Lamak
抱歉,拉馬克好點。不適當更新問題 –