小编Fra*_*sco的帖子

预先格式化的 varchar 变量在选择查询中不起作用

我正在尝试运行一个选择查询,该查询在 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)

sql-server-2008

1
推荐指数
1
解决办法
500
查看次数

标签 统计

sql-server-2008 ×1