[英]how to use if else in sql server with where clause
CREATE PROCEDURE findlist @comedianname1 nvarchar(30),@comedianname2 nvarchar(30)
AS
SELECT comedian
FROM Comedian
if @comedianname2!=null
begin
WHERE comedian! = @comedianname1 and comedian! = @comedianname2
end
else
begin
WHERE comedian! = @comedianname1
end
GO
我收到此錯誤:消息156,級別15,狀態1,過程查找列表,第7行關鍵字“ WHERE”附近的語法不正確。
您不能在選擇中使用IF
。 您可以在這種情況下執行以下操作:
SELECT comedian
FROM Comedian
WHERE
comedian! = @comedianname1 AND
comedian! = ISNULL(@comedianname2, comedian!)
它有什么作用? 如果比較comedian!
到@comedianname1
,如果@comedianname2
不為null,它將比較comedian!
到@comedianname2
。 否則它比較comedian!
來comedian!
,這總是true
。
您需要使用以下查詢
SELECT comedian
FROM Comedian
WHERE comedian! = @comedianname1 and (comedian! = @comedianname2 OR @comedianname2 IS NULL)
嘗試這個
CREATE PROCEDURE findlist @comedianname1 nvarchar(30),@comedianname2 nvarchar(30)
AS
SELECT comedian
FROM Comedian
WHERE (comedian! = @comedianname1 and comedian! = @comedianname2) OR (comedian! = @comedianname1)
GO
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.