我正在創建一個將用於搜索項目的SQL存儲過程。我允許用戶通過項目代碼或UPC進行搜索。因此,我需要能夠讓我的參數爲空。我認爲我很接近,但是,當我執行這個存儲過程時,當我期待只有一個時,它返回的結果太多了。SQL存儲過程用於搜索項目的空參數
這是我有:
@itm_ItemCode int,
@itm_UPC varchar(11)
SELECT
ITEM_CODE as itm_itemcode
,UPC_CODE as itm_upc
,[DESCRIPTION] as itm_description
,BASE_PRICE as itm_regularcost
FROM ITEM_TABLE
where (ITEM_CODE = @itm_ItemCode or @itm_ItemCode IS NULL)
OR (UPC_CODE = @itm_UPC or @itm_UPC IS NULL)
這裏是什麼,我有我的EXEC語句時,我嘗試測試我的存儲過程的幾個例子:(難道這我是如何假設寫我EXEC聲明?
EXEC stp_ItemSearch null, 71591010583
EXEC stp_ItemSearch 300, null
謝謝您的幫助!
PS我使用SQL Server管理
也許或外部()需要一個'和'。使用ITEM_CODE ='xyz'AND @itm_UPC爲NULL作爲示例...使用OR,則ITEM_CODE ='xyz'將返回並且所有itm_UPC都爲NULL也會返回。 OR意味着它可以是真實的,因爲它可以返回記錄。而且意味着它們都必須是真實的才能返回記錄。 – xQbert