木子屋 Dnawo's BLOG

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

👤 dnawo 📅 2008-04-14 👁 8450 👍 0 💬 0 🔄 本站原创
库中有两个表table1和table2,其中table2的字段m_id(varchar)对应着table1的id(int)字段,m_id值的格式为"id1,id2,id3,id4...",现在需要将m_id所对应的table1记录全部列出,执行如下SQL语句:

select * from table1 where id in(select m_id from table2 where id=1)

出错:将 nvarchar 值 '1,2,3,4' 转换为数据类型为 int 的列时发生语法错误!

也就是格式转换出错,在网上查了好久,总算有了答案,改为下边形式即可:

declare @sql varchar(200)
Set @sql = (select m_id from table2 where id=1)
Set @sql = N'select * from table1 where id in('+@sql+')'
Exec(@sql)

评论(0)

暂无评论。

计算题
评论需审核通过后显示
← 上一篇 C#文件及文件夹操作示例 下一篇 → 远程桌面终端服务器超出最大允许链接数解决方法