Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何在Case语句中获取子查询结果_Sql_Sql Server_Tsql - Fatal编程技术网

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