sqlserver溢出,超过了其中最大的整数值。

JiaoPengJay 2012-05-24 11:14:15

SELECT * FROM A
where ID in (select users from B where users_id='123456789102'))


转换 varchar 值 '..........' 时溢出了整数列。超过了其中最大的整数值。
这个我知道是因为后面的select查询出来的太大,users是int类型,而where条件的ID是varchar类型的,所有转换不了,也想到了cast转换也不可以,求救
...全文
737 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
SELECT * FROM A
where (cast ID as bigint) in (select users from B where users_id='123456789102')

--多打了一个括号
JiaoPengJay 2012-05-24
  • 打赏
  • 举报
回复
我个人的想法是应该从select users from B where users_id='123456789102'中的users 字段着手,应该users字段是int类型的,然后它去跟前面的varchar类型的id比较,这点应该是有问题吧。
JiaoPengJay 2012-05-24
  • 打赏
  • 举报
回复
不行,'ID' 附近有语法错误。
  • 打赏
  • 举报
回复
SELECT * FROM A
where (cast ID as bigint) in (select users from B where users_id='123456789102'))
yhnujm##33 2012-05-24
  • 打赏
  • 举报
回复

加个 ltrim()就解决了,求因
JiaoPengJay 2012-05-24
  • 打赏
  • 举报
回复
哈哈,还是鲁迅老叔叔厉害,不过最后多了个括号,谢啦
百年树人 2012-05-24
  • 打赏
  • 举报
回复
try
SELECT * FROM A 
where ID in (select ltrim(users) from B where users_id='123456789102'))

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧