我正在创建一个脚本,我在其中使用 IN 关键字查询表。当我在 IN 子句中键入数据时,查询将按我应该执行的方式执行。但是当我创建一个包含完全相同数据的变量并在 IN 子句中使用该变量时,它不会。有任何想法吗???
这是有效的查询
SELECT *
FROM scpcommandeventlog
WHERE MESSAGEid = 3
AND PARAM1 IN('11416407','11416410','11416413','11416417',
'11416419','11416421','11416423','11416427',
'11416432','11416433','11416434','11416435',
'11416438','11416443','11416446','11416448',
'11416451','11416454','11416458','11416462')
这是没有的查询
SELECT * FROM scpcommandeventlog WHERE MESSAGEid = 3 AND PARAM1 IN(@list)
这是填充@list 变量的查询
DECLARE @List varchar(max)
SELECT @List = isnull(@List + ',', '') + '''' + cast(itemid as varchar) + ''''
FROM dbo.ItemList
WHERE sortid LIKE @sortid