但是出错了,提示是:"将 nvarchar 值 '16,17,18,24,41' 转换为数据类型为 int 的列时发生语法错误"为什么呢?
后来请教了老宋才发现,直接用in (select webclasssubord from webclass where webclassid=15)这个时候读出来的是一个整体的nvarchar,无法使用In来查询int型数字是否包含在这个nvarchar里面,但是如果把对应的这个字段读到一个变量里 然后,比较这个变量里是否articleclass这个int型字段的值,所以做了以下修改:
declare @t nvarchar(100)
select @t= (SELECT webclasssubord FROM webclass WHERE webclassid = 15)
select @t='SELECT * FROM article WHERE Articleclass IN ('+@t+')'
execute(@t)
go
测试通过