listid是int数据 declare @listid nvarchar(100) set @listid='(1,2,3,7,9,10)' select * from forums where listid in(@listid)时提示如下错误: 在将 nvarchar 值 '(1,2,3,7,9,10)' 转换成数据类型 int 时失败。
但 declare @sql nvarchar(200) declare @listid nvarchar(100) set @listid='(1,2,3,7,9,10)' set @sql='select * from forums where listid in(' + @listid + ')' exec(@sql) 就不会有错。 listid是int数据 declare @listid nvarchar(100) set @listid='(1,2,3,7,9,10)' select * from forums where listid in(@listid)时提示如下错误: 在将 nvarchar 值 '(1,2,3,7,9,10)' 转换成数据类型 int 时失败。
当然啦,这个会默认转成LISTID类型,转不过就报错了, 用CHARINDEX或动态EXEC charindex我试过,但当@listid='12'时 会把listid=1,2,12的都会列出来 SQL code: --TRY select * from forums where charindex(','+ltrim(listid)+',',','+@listid+',')