【发布时间】:2017-11-23 05:01:01
【问题描述】:
我刚刚遇到了这个我以前从未使用过的命令。 & 运算符在这行代码中做了什么?好像( @MyVar & 64 ) 的另一种写法@MyVar = 64
DECLARE @MyVar INT
SET @MyVar = 16 -- Prints yes
SET @MyVar = 64 -- Prints no
IF ( ( @MyVar & 64 ) = 0 )
BEGIN
SELECT 'yes'
END
ELSE
BEGIN
SELECT 'no'
END
【问题讨论】:
-
它是一个位与,它比较两个整数中每个位的相等性,这在使用位掩码在单个整数中组合多个值时最常用,例如。 stackoverflow.com/questions/143712/…
-
提示:使用适当的软件(MySQL、Oracle、DB2 等)和版本标记数据库问题很有帮助,例如
sql-server-2014。语法和功能的差异通常会影响答案。请注意,tsql缩小了选择范围,但没有指定数据库。
标签: sql-server tsql