您的位置:首页 > 数据库

数据库查询问题--int型字段对应以Int型数值+','组成的nvarchar型字段

2007-10-26 22:37 369 查看
webclassparent(int型)和webclasssubord(nvarchar型)来表示父栏目和子栏目,客户的需求是要读出某个父类下面所有子栏目的内的新闻,我最初想到的是:select * from article where articleclass in(select webclasssubord from webclass where webclassid=15) 说明:webclasssubord是由子栏目id加“,”组成的一个nvarchar型的字符串。
但是出错了,提示是:"将 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

测试通过
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐