gpt4 book ai didi

sql-server - SQL Server WHERE 子句中的与号 (&) 运算符

转载 作者:行者123 更新时间:2023-12-01 19:32:13 25 4
gpt4 key购买 nike

很抱歉问了这个非常基本的问题。 & 运算符在此 SQL 中执行什么操作

WHERE (sc.Attributes & 1) = 0 

sc 是包含列attributes 的表的别名。

我试图理解报告中的一些 SQL,该行使其返回 0 个条目。如果我注释掉它就可以了。我的 SQL 知识有限,我不确定 & 1 正在做什么。

最佳答案

& is the bitwise logical and operator - 它对 2 个整数值执行运算。

WHERE (sc.Attributes & 1) = 0 

上面的代码检查 sc.Attributes 是否为偶数。这相当于第一位未设置。

由于列的名称是:“属性”,因此“1”值可能只是一些具有外部含义的标志。

通常对存储在属性数字中的每个标志使用 1 个二进制数字。因此,要测试第一个位,您使用 sc.Attributes&1,要测试第二个位,您使用 sc.Attributes&2,要测试第三个位,您使用 sc.Attributes&4,要测试第四个位,您使用 sc.Attributes&8,...

= 0 部分正在测试第一位是否未设置。

一些二进制示例:(==显示运算结果)

//Check if the first bit is set, same as sc.Attributes&1
11111111 & 00000001 == 1
11111110 & 00000001 == 0
00000001 & 00000001 == 1


//Check if the third bit is set, same as sc.Attributes&4
11111111 & 00000100 == 1
11111011 & 00000100 == 0
00000100 & 00000100 == 1

关于sql-server - SQL Server WHERE 子句中的与号 (&) 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/670230/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com