SQL Server存储过程:if variable = X,case where statement
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL Server存储过程:if variable = X,case where statement相关的知识,希望对你有一定的参考价值。
我能够制作它并且它有效,但我不确定为什么或者是否有更清洁的方式。
基本上我有一个ASP.NET C#服务器端,它将传递一个参数。如果参数= 0,我希望select返回所有内容
如果select不是零,我想返回特定的行。
DECLARE @OrgId INT = 0
;WITH cte AS
(
SELECT
o.ID_PK OrgId, ISNULL(o.Parent_ID_FK, 1) ParentId,
o.Organization_Name
FROM
DYN_Organization o
WHERE
o.Is_Active = 1
AND @OrgId LIKE CASE @OrgId
WHEN '0' THEN '0'
ELSE o.ID_PK
END
)
SELECT *
FROM cte
再次,这就像我想要的那样,我只是不知道为什么。我以为我必须把%
但它不喜欢那样。当我意识到它有效时,我只是在测试我的查询。
答案
您可以使用逻辑or
运算符模拟此行为,或者更好的是,使用in
,这是一系列qazxswwied等于检查的简写:
or
以上是关于SQL Server存储过程:if variable = X,case where statement的主要内容,如果未能解决你的问题,请参考以下文章
在 SQL Server 存储过程的 where 中使用参数作为列