在 where 子句中使用集合 sql 时的布尔值
Posted
技术标签:
【中文标题】在 where 子句中使用集合 sql 时的布尔值【英文标题】:Boolean in case using sets sql in the where clause 【发布时间】:2013-01-11 21:36:24 【问题描述】:我正在尝试在 where 中使用 Not In 和布尔变量来确定是否在集合中搜索某些东西。例如:
Select
BLAH
FROM
BLAH
WHERE
...
AND CASE WHEN @variable = 'false' THEN
warningcode1 NOT IN (101,102,103)
【问题讨论】:
【参考方案1】:试试这个
Select
BLAH
FROM
BLAH
WHERE
...
AND (@variable <> 'false' OR warningcode1 NOT IN (101,102,103))
【讨论】:
【参考方案2】:只需使用:
AND (@variable <> 'false' OR warningcode1 NOT IN (101,102,103))
因此,警告代码1 仅在变量 = 'false' 时才重要,否则将被忽略。
【讨论】:
【参考方案3】:用 if 试试这个
AND IF( @variable = 'false' , warningcode1 NOT IN (101,102,103) , warningcode1 IN (101,102,103) )
【讨论】:
以上是关于在 where 子句中使用集合 sql 时的布尔值的主要内容,如果未能解决你的问题,请参考以下文章
如何在光标的 select 语句 where 子句中传递逗号分隔值