我有以下部分 - 注意@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”附近的语法不正确。
答案 0 :(得分:1)
您需要使用()
包围子查询,并且您的中间)
放错位置:
WHERE TRUCK IN (COALESCE((SELECT value from dbo.fn_split(@TRUCK, '~')),ATP.TRUCK))
答案 1 :(得分:0)
不确定 - 但我希望你必须将'选择值从dbo.fn ...'分配给局部变量然后引用coalesce中的局部变量(...)