我正在使用隐藏的内部参数(@DoorHelper)来检查我使用的另一个参数(@Door)是否包含一个特殊值,我用它来表示'global '('9999'),并返回所有门。SSRS2008 - SELECT CASE ... WHEN ... THEN
SELECT
CASE
WHEN ('9999'+'-'+ RIGHT(Unknown1,1) in (@Door))
THEN (SELECT DISTINCT [Zone]+' - '+CAST([OfficeID] as char(5)) FROM [ADB].[dbo].[ZoneByOffice])
ELSE (@Door)
END AS ZoneID
FROM [ADB].[dbo].[EventLog]
问题是,从THEN返回多于1个结果似乎会引发错误。
我该如何改革这个SQL来做我想做的事?
'@ Door'看起来像什么?它是否是一个CSV列表,您试图将其用作“IN(...)'运算符的实际值列表? –