以下是对单个表的查询结果:
ID ColumnA ColumnB ColumnC
1 -1 300 400
2 200 300 0
如果我想要如下结果,查询会是什么样的:
ColumnA ColumnB ColumnC
200 300 400
基本上,使用ColumnB
作为参考,并将-1和0替换为ColumnA
和ColumnC
下的各自非零对应项(展平?)。
一些让步:
这是我没有经验的东西,所以我要求SO的帮助。谢谢。
答案 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
试试这个