首页 > 解决方案 > SQL:在分组对象上执行 MAX 类似 OR

问题描述

我有一张Example这样的桌子:

Id, Type, Flags(in integer)
1,   A,    8 (B1000)
2,   A,    7 (B0111)
3,   B,    3 (B0011)

标志存储为整数,但解释为二进制。当我按类型分组以获取每种类型的 MAX 时,我会这样做:

SELECT Type, MAX(Flags)
FROM Example
GROUP BY Type

我该怎么做才能获得一组标志中所有值的逻辑或?例如:我想要的是这样的:

Type, ResultFlags
A,    15 (B1111 = B1000 | B0111)
B,    3 (B0011)

有没有办法在一个GROUP BY条款或任何其他不太昂贵的方式中做到这一点?

我也很好奇你如何在 LINQ to SQL 中做到这一点。

标签: sql-servergroup-bylinq-to-sqlmax

解决方案


推荐阅读