首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Server使用case动态添加条件

Server使用case动态添加条件
EN

Stack Overflow用户
提问于 2021-01-20 11:23:09
回答 1查看 62关注 0票数 0

在Server存储过程中,我希望添加一个动态的Where子句,如下所示:

代码语言:javascript
复制
AND CASE WHEN @mySt <> '' THEN s.myStatus IN(@mySt) ELSE 0=0 END

当我想检查是:如果@mySt不是空的,我想添加s.myStatus IN(@mySt)

如果@mySt是空的,我想跳过这个where子句。

我犯了个错误

不正确的语法在“IN”

附近

EN

回答 1

Stack Overflow用户

发布于 2021-01-20 11:26:08

CASE是一个表达式,它返回一个标量值而不是一个布尔结果;您不可能想要这样做,因为s.myStatus IN(@mySt)不是标量值。

使用正确的布尔逻辑:

代码语言:javascript
复制
AND (s.myStatus = @mySt OR @mySt IS NULL) --I suggest NULL over a blank string

我将IN替换为=,因为@mySt是标量值,因此IN=将是同义词。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65808570

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档