0
我有一个存储过程,我通过一个逗号分隔的ID,我在where
子句中使用此语句与'IN'的case语句。子查询返回的值超过1。与SQL Server 2012中的where子句
我得到这个错误:
“子查询返回多个值。当子查询遵循=,!=,<,< =,>,> =或子查询用作表达式时,这是不允许的。
我的程序是
ALTER Proc [dbo].[proc_generatdetail]
@TagIds varchar(1000)
@IsMinStock bit,
@Tags varchar(1000)
AS
BEGIN
SELECT
IMd.ItemCode, I.ITEM_No
FROM
Item I
LEFT JOIN
tblItemSize ITS ON I.ITEMCode = ITS.ItemId
AND I.BranchId = ITS.BranchId
WHERE
CASE
WHEN @Tags IS NOT null
THEN ITS.SizeId
ELSE 1 END IN
(case when @Tags is not null then (select id from CSVToTable(@TagIds)) else (1) end)
END
CSVToTabes
returs ID的表,我也没有用,如果 - else条件。 因此,如果任何人有,请给这个解决方案。
非常感谢你亲爱的,现在它适用于我... –