BIT_COUNT (Transact SQL)
适用于:SQL Server 2022 (16.x) Azure SQL 数据库Azure SQL 托管实例Microsoft Fabric 中的 SQL 分析终结点Microsoft Fabric 中的仓库
BIT_COUNT 采用一个参数,并将该参数中设置为 1 的位数作为 bigint 类型返回。
语法
BIT_COUNT ( expression_value )
参数
expression_value
任何不是大型对象 (LOB) 的整数或二进制表达式。
返回类型
bigint
在计算位数之前,BIT_COUNT 不会执行强制转换。 这是因为同一个数字在其二进制表示形式中可以有不同数量的 1,具体取决于数据类型。
例如,SELECT BIT_COUNT (CAST (-1 as smallint))
和 SELECT BIT_COUNT (CAST (-1 as int))
将分别返回 16 和 32。 这是预期结果,因为在 -1
的二进制表示形式中,可以根据数据类型将不同的位数设置为 1。
备注
在初始实现中,链接服务器中的位操作函数的分布式查询功能或即席查询 (OPENQUERY) 不受支持。
示例
A. 以二进制值计算 BIT_COUNT
在以下示例中,将以二进制值计算设置为 1
的位数。
SELECT BIT_COUNT ( 0xabcdef ) as Count;
结果为 17
。 这是因为 0xabcdef
的二进制格式为 1010 1011 1100 1101 1110 1111
,有 17 位的值设置为 1
。
B. 以整数计算 BIT_COUNT
在以下示例中,将以整数计算设置为 1
的位数。
SELECT BIT_COUNT ( 17 ) as Count;
结果为 2
。 这是因为 17
的二进制格式为 0001 0001
,并且只有 2 位的值设置为 1
。
请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈