合并两行

时间:2016-04-22 22:08:28

标签: sql-server tsql sql-server-2012

以下是对单个表的查询结果:

ID ColumnA ColumnB ColumnC 1 -1 300 400 2 200 300 0 如果我想要如下结果,查询会是什么样的:

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

一些让步:

  • 总是两行
  • ColumnA始终为-1,ColumnC
  • 为0

这是我没有经验的东西,所以我要求SO的帮助。谢谢。

2 个答案:

答案 0 :(得分: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 

答案 1 :(得分:1)

所有clm1,clm2,clm3都必须是数据类型int,rea,float然后才能应用

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

试试这个