SQL Server中的右移和左移操作符
本文关键字:左移 操作符 右移 Server SQL | 更新日期: 2023-09-27 18:08:31
在SQL Server中,根据知识不存在移位操作符
如果我必须实现右移和左移,什么是有效的方法?
- 与数学表达式,将给我相同的输出移位运算符必须给出。
或
- 将调用CLR函数来计算右移和左移,因为移位操作符在c#中可用,这将给我输出我所期望的。
请建议哪一种方法更有效。
在SQL Server 2022中可以使用
-
LEFT_SHIFT ( expression_value, shift_amount )
-
RIGHT_SHIFT ( expression_value, shift_amount )
当然是选项一
的数学表达式,它将给我相同的输出移位操作符
一次左移只是乘以2。如有必要,可重复模拟a << n
。因此,右移是整数除以2。
还有一个很好的涉及varbinary
的hack,在这个相关的答案中描述。
即使添加了算术溢出预防,在SQL server的CLR托管环境中,任何一种转换都将比非托管/托管转换的性能要好得多。