SQL将行连接成一个

时间:2013-02-25 11:43:08

标签: sql tsql

| fk | red | brown | green |
|1337|  1  |   0   |   0   |
|1337|  0  |   1   |   0   |
|1337|  0  |   0   |   1   |

在tSql中我如何将这些作为一行返回来说1337在某些时候是红色,棕色和绿色?

| fk | red | brown | green |
|1337|  1  |   1   |   1   |

3 个答案:

答案 0 :(得分:3)

使用Max函数Grouping by fk

select fk, max(red) red, max(brown) brown, max(green) green
from yourTable
group by fk

如果 red brown & green bit type 字段,然后按以下方式尝试

select fk, max(red+0) red, max(brown+0) brown, max(green+0) green
from yourTable
group by fk

答案 1 :(得分:2)

通过分组:

Select  fk , 
        Max(red) as red,
        Max(brown) as brown, 
        Max(green) as green 
FROM    myTableName
GROUP   BY fk

答案 2 :(得分:1)

像这样:

SELECT  fk
       ,MAX(red)
       ,MAX(brown)
       ,MAX(green)
FROM   yourtable
GROUP  BY fk