Sql-Server-2008
如何顯示查詢的 NULL 結果?
我正在嘗試創建一個帶有搜尋過濾器的過程。
如果參數為“NULL”,則參數值將是列值;
這是我的問題:當我的參數和列值為 NULL 時。
因為這個,我沒有結果。
我知道查詢:“COLUMN_NAME IS NULL”即使值為 NULL,也會返回結果,但我不知道如何實現。
我試圖用“CASE”來做到這一點,但沒有成功。
CREATE PROCEDURE SEARCH_QUERYS @ID int, @LIVE bit, @DATA datetime AS BEGIN SELECT * FROM TB_SEARCH WHERE ID = ISNULL(@ID,ID) AND LIVE = ISNULL(@LIVE,LIVE) AND DATA = ISNULL(@DATA,DATA) END
ALTER PROCEDURE dbo.SEARCH_QUERYS -- always use schema prefix! @ID int, @LIVE bit, @DATA datetime AS BEGIN SELECT ID, LIVE, DATA --, ... don't use SELECT *! FROM dbo.TB_SEARCH -- always use schema prefix! WHERE (ID = @ID OR @ID IS NULL) AND (LIVE = @LIVE OR @LIVE IS NULL) AND (DATA = @DATA OR @DATA IS NULL); -- always use semi-colons! END GO
在某些情況下,儘管您最好動態建構查詢。
參考: