+ 二进制类型的运算符

+ operator on binary types

当 'adding' 二进制类型时,将它们的值加在一起或将字节连接在一起更常见吗?例如:

=0x12 + 0xA

是否更常见于等于:

0x120A

或者:

0x1C

我的意思主要是在 SQL 上下文中,因为我确信在编程语言中使用时它会在应用运算符之前将字节转换为数字。这是在 SQL 标准中定义的,还是对供应商实施开放的?

这是来自 SQL 服务器的引用:String Operators

这里的问题是您看到 + 并想到“加法”。那太傻了! (这是个笑话。)

SQL 服务器重载 + 所以它既是加法又是字符串连接。对于二进制常量,使用“字符串”连接。这是在documentation。对于 + 作为补充:

Is any valid expression of any one of the data types in the numeric category except the bit data type.

然后在 page 上将 + 作为字符串连接:

Is any valid expression of any one of the data types in the character and binary data type category, except the image, ntext, or text data types.

因此,SQL 服务器决定您确实需要字符串连接。

如果你真的想把它们相加,把它们转换成数字再转回二进制:

select cast(cast(0x12 as int) + cast(0xA as int) as binary(1))