首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Case语句中获得子查询结果

如何在Case语句中获得子查询结果
EN

Stack Overflow用户
提问于 2017-08-22 08:29:00
回答 1查看 268关注 0票数 0

如何将subquery结果导入CASE语句。

代码语言:javascript
运行
复制
Select * from TestDb T
where T.LevelId IN (CASE T.Data WHEN 7 THEN (Select Data from dbo.Split('5,4',',')) ELSE 0 END)

欲望输出

对于ID为5和4的7-2行

其他匹配1行与0

误差

子查询返回的值超过一个。当子查询跟随=、!=、<、<=、>、>=或子查询用作表达式时,这是不允许的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-22 08:36:01

你能试试:

代码语言:javascript
运行
复制
Select * 
from TestDb T
where T.DATA=7 AND T.LEVELID IN (Select Data from dbo.Split('5,4',','))
    OR ((T.DATA IS NULL OR T.DATA<>7) AND T.LEVELID=0)

样本数据:

代码语言:javascript
运行
复制
CREATE TABLE TESTDB (LEVELID INT, DATA INT);
INSERT INTO TESTDB values (4,7);
INSERT INTO TESTDB values (0,6);
INSERT INTO TESTDB values (0,NULL);
INSERT INTO TESTDB values (5,7);
INSERT INTO TESTDB values (6,7);

输出:

代码语言:javascript
运行
复制
LEVELID DATA
4   7
0   6
0   NULL
5   7
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45812614

复制
相关文章

相似问题

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