我想用這個功能在sql存儲過程中編寫where子句。改進where子句
if (@userId=0)
begin
SELECT * from tblUsers
end
else
begin
SELECT * from tblUsers
WHERE userId= @userId
end
當我發送一個id(example:123)
存儲過程就應該給我一個具體,當我發送「0」作爲ID,它應該返回整個數據 但是我不想,如果其他人使用。應該有一些我可以改進我的where子句的東西。
例如
SELECT * from tblUsers
WHERE (userId= @userId OR @userId = 0) and @userId = 123... bla bla
(或這當然不是)
任何幫助嗎?
爲什麼第二個代碼段不可接受? – shahkalpesh
第二個查詢(但沒有'和@userId ...'位)似乎是你想要的。順便說一下,通常建議您使用NULL來指示沒有值,而不是自己創建標記值 - 這就是它的用途。 –