我正在尝试运行一个选择查询,该查询在 where 子句中接收@Sites 变量。目前的查询返回空,因为以下行
AND S.[Name] IN (@Sites)
Run Code Online (Sandbox Code Playgroud)
未按预期处理。下面是查询的摘录:
SET QUOTED_IDENTIFIER OFF
DECLARE @Month int
, @Sites varchar(MAX) = null
SET @Month = 8
SET @Sites = 'Bayside;Collaborative'
SET @Sites = "'" + REPLACE(@Sites,';',"','") + "'"
SELECT
CV.[Id] AS Id
, ...
, S.[Name] AS [Site]
, ...
FROM
[CalendarViews] CV
INNER JOIN [Sites] S ON S.[Id] = CV.[SiteId]
WHERE
MONTH(CV.[DateAllocation]) = @Month
AND S.[Name] IN (@Sites)
ORDER BY
S.[Name]
Run Code Online (Sandbox Code Playgroud)
当我运行查询替换
AND S.[Name] IN (@Sites)
Run Code Online (Sandbox Code Playgroud)
为了
AND S.[Name] IN ('Bayside','Collaborative') …
Run Code Online (Sandbox Code Playgroud)