【发布时间】:2021-01-02 04:21:44
【问题描述】:
当“添加”二进制类型时,将它们的值相加还是将字节连接在一起更常见?例如:
=0x12 + 0xA
这个等于更常见吗:
0x120A
或者:
0x1C
我的意思主要是在 SQL 上下文中,因为我确信在编程语言中使用它时,它会在应用运算符之前将字节转换为数字。这是在 SQL 标准中定义的,还是对供应商实施开放?
这是来自 SQL Server 的参考:String Operators。
【问题讨论】:
-
根据我的经验,通常不会将任何运算符应用于二进制值。可能是因为二进制值通常是表示对象的东西 - 图像、编码文件、加密的标量值、存储的应用程序的结构等。如果您问为什么加号运算符将您的值视为字符串并应用连接,那么这已记录在案。不支持直接对二进制值使用数学;尝试任何其他数学运算符以查看“不兼容”错误消息。
-
@SMor 同意原子/非打包值(图像、哈希等),但如果存储打包值我认为它可能很有用——
&、|,我想+和-和~。例如,“哪些用户应用了此电子邮件首选项(位)?”更新所有用户的设置等。
标签: sql sql-server operators byte