Sql 如何在Case语句中获取子查询结果
如何将Sql 如何在Case语句中获取子查询结果,sql,sql-server,tsql,Sql,Sql Server,Tsql,如何将子查询结果放入案例语句中 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行 Else将1行与0匹配 错误 子查询返回了多个值。这是不允许的,因为 子查询后面是=,!=,=或者当子查询用作 表情 你能试试吗 Select * from TestDb T where
子查询
结果放入案例
语句中
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行
Else将1行与0匹配
错误
子查询返回了多个值。这是不允许的,因为
子查询后面是=,!=,=或者当子查询用作
表情
你能试试吗
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)
输出:
LEVELID DATA
4 7
0 6
0 NULL
5 7
你想要的产量是多少?如果我们不知道您想做什么,那么很难帮助您。在标量表达式位置使用时,子查询必须返回不超过1的值。你的返回2。选择您需要的。如果T.DATA可为NULL,则或中缺少NULL检查。
LEVELID DATA
4 7
0 6
0 NULL
5 7