如何显示正确的结果

时间:2013-02-22 11:25:31

标签: sql sql-server

如果您拥有此列表中的数据:

nvarchar  int    int    nvarchar   nvarchar
Line      start  end    typ        color
-------------------------------------------
T11       1      null   cookie     Blue
T11       null   10     cookie     Blue
T11       null   null   cookie     Blue
T11       null   null   cookie     Blue
T2        20     null   computer   Red
T2        null   null   computer   Red
T2        null   52     computer   Red
T3        null   null   dark       black
T3        52     null   dark       black
T3        null   10     dark       black

请求的结果应为:

Line      start  end    typ        color
-------------------------------------------
T11       1      10     cookie     Blue
T2        20     52     computer   Red
T3        52     10     dark       black

我应该如何在SQL Server 2012中执行此操作?

1 个答案:

答案 0 :(得分:2)

我认为这就是你要求的。显然用表名替换tablename。

SELECT t.line, MIN(t.START), MAX(t.END), t.typ, t.color
FROM dbo.tablename t
GROUP BY t.line, t.typ,  t.color