其中一個參數是位數據類型。儘管DB表中的值只有0和1,但從接口發送參數時,它也可以爲空。該foll。查詢給出0行。我懷疑這個問題可能與這個位參數有關。使用位參數的存儲過程
ALTER PROCEDURE GETDATA (@username VARCHAR(50),
@profileid UNIQUEIDENTIFIER,
@status BIT)
AS
BEGIN
IF @username = ''
SET @username = NULL
ELSE
SET @username = '%' + @username + '%'
IF @profileid = '00000000-0000-0000-0000-000000000000'
SET @profileid = NULL
SELECT u.*
FROM tbluser u
WHERE u.deleted = 0
AND (u.username like @username
OR u.username IS NULL)
AND (u.profileid = @profileid
OR u.profileid IS NULL)
AND (u.status = @status
OR (@status IS NULL
AND u.status IS NULL))
END
--execute GetData null,null,null
期望輸出
UserId EmpId Username profileid status
--------------------------------------
1 101 user1 10 1
看起來不錯。它是否正常工作取決於您尚未告訴我們的所需語義。請顯示您希望返回的那一行數據。 –
@Martin,我已經更新了我的問題,預期產出 – Ruby