0

我有一个 select 语句,它为每个标签返回一个元素数组:

|TAG  | Bool1 | Bool2 | Bool3 |
|-----------------------------|
|tag1 |  0    |   1   |  0    |
|tag1 |  1    |   1   |  0    |
-------------------------------

我希望结果是带有 OR 语句的两行的并集:

_______________________________
|TAG  | Bool1 | Bool2 | Bool3 |
|-----------------------------|
|tag1 |  1    |   1   |  0    |
-------------------------------
4

2 回答 2

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其他行中的所有 s。

于 2013-04-15T09:47:39.443 回答
2

请注意,MAX运算符不使用BIT字段。CAST如果它的类型不INT使用@Damien_The_Unbeliever 提出的解决方案,您必须填写您的字段

追加我假设一个简单的 1/0 值的字段可能有点

于 2013-04-15T09:55:28.507 回答