日期:2014-05-18  浏览次数:20529 次

SQL查询【简单】
declare @nm as nvarchar(20)
set @nm='2785,2786'
select @nm=replace(@nm,'''','')
select @nm
select * from 表 where 编号 in(@nm)

--------------------------


将 nvarchar 值 '2785,2786' 转换为数据类型为 int 的列时发生语法错误。

为什么呢?!

------解决方案--------------------
SQL code
declare @nm as nvarchar(20)
set @nm='2785,2786'
exec('select * from 表 where 编号 in('+@nm+')')

------解决方案--------------------
因为你定义的变量为字符串类型,是一个整体,你放在in的括号里面他还是当一个字符串来处理