我想编写以下查询:
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/