SQL在何处导致问题
我有一个where的以下部分-注意SQL在何处导致问题,sql,Sql,我有一个where的以下部分-注意@TRUCK是存储过程的输入参数: WHERE TRUCK = COALESCE(@TRUCK, ATP.TRUCK) AND ... 我想通过考试 SELECT value from dbo.fn_split(@TRUCK, '~') 代替@TRUCK,因为我想传递一个~分隔的列表 我尝试使用: WHERE TRUCK IN (COALESCE(SELECT value from dbo.fn_split(@TRUCK, '~')),ATP.TRUCK
@TRUCK
是存储过程的输入参数:
WHERE TRUCK = COALESCE(@TRUCK, ATP.TRUCK) AND ...
我想通过考试
SELECT value from dbo.fn_split(@TRUCK, '~')
代替@TRUCK,因为我想传递一个~分隔的列表
我尝试使用:
WHERE TRUCK IN (COALESCE(SELECT value from dbo.fn_split(@TRUCK, '~')),ATP.TRUCK)
但出现以下错误:
关键字“SELECT”附近的语法不正确
不确定-但我希望您必须将“select value from dbo.fn…”分配给局部变量,然后在联合中引用局部变量(…)不确定-但我希望您必须将“select value from dbo.fn…”分配给局部变量,然后在联合中引用局部变量(…)您需要用
()
包围子查询,中间的)
放错了位置:
WHERE TRUCK IN (COALESCE((SELECT value from dbo.fn_split(@TRUCK, '~')),ATP.TRUCK))
您需要用
()
包围子查询,中间的)
放错了位置:
WHERE TRUCK IN (COALESCE((SELECT value from dbo.fn_split(@TRUCK, '~')),ATP.TRUCK))
尝试选择dbo.fn_分割(@TRUCK,~')作为值
尝试选择dbo.fn_分割(@TRUCK,~')作为值