问题描述
我的代码如下,不知何故在@Name
My code is as below, somehow there is always an error near @Name
DECLARE @Name nvarchar(MAX) = '(mm.dll, ben and jerry.exe)' DECLARE @sql nvarchar(MAX)= 'SELECT OrderName, customer.version, count(DISTINCT company.CID) as Counts FROM [CompanyData] company INNER JOIN [vendor] mav on company.CID = mav.CID LEFT OUTER JOIN [Customer] customer on company.VendorId = customer.VendorId AND company.DId = customer.DId WHERE OrderName in' + @Name+ ' GROUP BY customer.version, OrderName' EXEC sp_executesql @sql
推荐答案
在你的 @Name 声明中加入单引号,并删除其中的哈希(#):
Put a single quote in your declaration of @Name and just remove the hashes(#) in it:
DECLARE @Name nvarchar(MAX)='(''mm.dll'', ''ben and jerry.exe'')' DECLARE @sql nvarchar(MAX)= 'SELECT OrderName, customer.version, count(DISTINCT company.CID) as Counts FROM [CompanyData] company INNER JOIN [vendor] mav on company.CID = mav.CID LEFT OUTER JOIN [Customer] customer on company.VendorId = customer.VendorId AND company.DId = customer.DId WHERE OrderName in ' + @Name+ ' GROUP BY customer.version, OrderName' EXEC sp_executesql @sql