BIT_COUNT (Transact SQL)
适用于: sql Server 2022 (16.x) Azure SQL 数据库 Azure SQL 托管实例 Microsoft Fabric Warehouse 中的 Microsoft Fabric Warehouse 中的 SQL 分析终结点
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
。