Я использую скрытый внутренний параметр (@DoorHelper), чтобы проверить, содержит ли другой параметр, который я использую (@Door), специальное значение, которое я использую, чтобы представить «глобальный» («9999») и вернуть все двери в этом случае.
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]
Проблема в том, что возвращение более 1 результата из THEN приводит к ошибкам.
Как я могу преобразовать этот SQL, чтобы сделать то, что я хочу?