簡體   English   中英

如何在SQL Server中使用where子句使用if else

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM