我有一个select语句,它返回每个标记的元素数组:
|TAG | Bool1 | Bool2 | Bool3 |
|-----------------------------|
|tag1 | 0 | 1 | 0 |
|tag1 | 1 | 1 | 0 |
-------------------------------
我希望结果是两行与OR语句的并集:
_______________________________
|TAG | Bool1 | Bool2 | Bool3 |
|-----------------------------|
|tag1 | 1 | 1 | 0 |
-------------------------------
答案 0 :(得分:9)
SELECT TAG,
CAST(MAX(CAST(Bool1 as int)) as bit) as Bool1,
CAST(MAX(CAST(Bool2 as int)) as bit) as Bool2,
CAST(MAX(CAST(Bool3 as int)) as bit) as Bool3
from Table group by TAG
似乎符合该法案,因为即使单行具有1
值,也会克服其他行中的所有0
。
答案 1 :(得分:2)
请注意,MAX
运算符不适用于BIT
字段。如果您的字段不是CAST
,则必须INT
您的字段才能使用@Damien_The_Unbeliever提出的解决方案
附加:我认为具有简单1/0值的字段可能有点。