SQL查询报错:varchar转bigint失败,如何解决该问题?
问题分析与解决
- 错误原因:你的
ID列是bigint数值类型,执行'%' + ID + '%'时,SQL Server会自动尝试把字符串'%'转换为数值类型(数值类型与字符串运算时,会优先将字符串转为数值),但'%'无法转成bigint,因此触发类型转换错误。 - 修正后的查询语句:
将ID显式转换为字符串类型后再做拼接匹配:
select ID from Table1 where '0123456789' like '%' + CAST(ID AS VARCHAR(20)) + '%'
也可以使用CONVERT函数实现转换:
select ID from Table1 where '0123456789' like '%' + CONVERT(VARCHAR(20), ID) + '%'
- 补充说明:修改后SQL Server会将
ID当作字符串处理,检查它是否是0123456789的连续子串,从而返回你需要的包含连续数值的ID。
内容的提问来源于stack exchange,提问作者John Son
相关产品推荐
相关产品推荐

