sql - 将 MIN 聚合函数应用于 BIT 字段

标签 sql sql-server tsql

我想编写以下查询:

SELECT   ..., MIN(SomeBitField), ...
FROM     ...
WHERE    ...
GROUP BY ...

问题是,SQL Server 不喜欢它,当我想计算位字段的最小值时,它返回错误操作数数据类型位对于 min 运算符无效.

我可以使用以下解决方法:

SELECT   ..., CAST(MIN(CAST(SomeBitField AS INT)) AS BIT), ...
FROM     ...
WHERE    ...
GROUP BY ...

但是,还有更优雅的吗? (例如,可能有一个我不知道的聚合函数,它评估字段中位值的逻辑 and。)

最佳答案

一个选项是CAST(MIN(SomeBitField+0) AS BIT)。它读起来很好,噪音更少(我将其称为优雅)。

也就是说,它比 CASE 选项更具 hack 性。而且我对速度/效率一无所知。

关于sql - 将 MIN 聚合函数应用于 BIT 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6997721/

相关文章:

c++ - 为什么我无法连接到我的数据库?

sql - SQL Server 2005中获取动态SQL返回的临时表,并解析

sql - 从子查询中选择行,SQL,解决

sql - 如何使用基于另一个选择语句的循环插入表

sql-server - 删除表中的行会导致 LOCKS

sql - 如何使用 SQL Server 覆盖 GROUP BY 中的空列值?

sql - 如何在查询时使用 datediff 函数查找年龄范围?

c# - 在未安装 SSMS 的服务器上使用 SqlPackage.exe

sql - 混淆/屏蔽/打乱个人信息

tsql - SQL Server在GROUP BY期间丢弃SPACE