You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Transact SQL中数字与字符串相加为何转为数值运算?

为什么两段Transact SQL语句执行结果都是246?

你给出的两段SQL语句如下:

select 123 + '123'
select '123' + 123

这是因为SQL Server遵循数据类型优先级规则:当不同数据类型的操作数进行运算时,优先级低的数据类型会被隐式转换为优先级高的类型,再执行运算。

在SQL Server里,int这类数字类型的优先级远高于varchar/char这类字符串类型。所以不管是数字 + 字符串还是字符串 + 数字,字符串都会被自动转换成对应的数字类型,然后执行加法运算,也就是123 + 123 = 246。

需要注意的是,如果字符串无法转换成有效数字(比如'abc' + 123),就会抛出转换错误。

内容的提问来源于stack exchange,提问作者CraftyFox

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 01:59:52