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條件。 因此,如果任何人有,請給這個解決方案。
非常感謝你親愛的,現在它適用於我... –