2016-04-22 47 views
0

以下是在单个表查询的结果是:结合两行

ID ColumnA ColumnB ColumnC 1 -1 300 400 2 200 300 0 将查询什么样子,如果我想类似下面的结果:

ColumnA ColumnB ColumnC 200 300 400 基本上,使用ColumnB作为参考,并用ColumnAColumnC(展平?)下各自的非零对应取代-1和0。

一些已知条件:

  • 总是两排
  • 始终-1 ColumnA和0 ColumnC

这是我所没有的经验,所以我问SO的帮帮我。谢谢。

+1

'从表中选择max(columna),max(columnb),max(columnc)? –

回答

1

所有CLM1,CLM2,CLM3都是必须定义了int类型,域名,浮然后将其应用于

select Top(1) max(clm1), max(clm2), max(clm3) from tbl group by clm1,clm2,clm3 

其他试试这个,

select max(clm1), max(clm2), max(clm3) from tbl 

试试这个

1
select * 
from 
(select ID ColumnA, ColumnB, ColumnC, 
     , lead (ColumnA, 1, 'default') over (order over ID) as ColumnAlead 
    from table 
) tt 
where tt.ColumnC <> 0