我有一個存儲過程用於搜索屏幕,其中有5個不同的過濾器。 用戶可以將過濾器留空或有一個過濾器,然後單擊搜索按鈕。如果字段值爲空,在where子句中排除列
所有的數據來自數據庫,我試圖創建存儲過程,如果參數值爲空字符串,可以排除where子句中的列。
@Id as nvarchar(256) = 1
@blnIsinProgress bit = 0
@strStatus varchar(20) = ''
@strName varchar(50) = ''
@strConfirmationNumber varchar(50) = 123
@dtmSubmittedFrom Date = '12/31/9999'
@dtmSubmittedTo Date = '12/31/9999'
as
BEGIN
SELECT *
FROM tblTable
WHERE
(@Id IS NULL OR lngID = @Id) AND
(@blnIsinProgress IS NULL OR blnIsinProgress = @blnIsinProgress) AND
(@strStatus = '' OR strStatus = @strStatus) AND
(@strName= '' OR strName= @strName) AND
(@strConfirmationNumber = '' or @strConfirmationNumber = @strConfirmationNumber)
End
但
Execute spManage 1,0,'','',123
會給我所有的結果
但是參數的值是空字符串。 –