我在下面有一個示例表。從該表中#AI 需要如下所示。基本上我想從第一個非零行獲取資料。如果在那之后出現任何零就沒有問題。
Create table #A
(
[Data] int
)
insert into #A values(0),
(0),
(0),
(0),
(0),
(23),
(524),
(723),
(0),
(89),
(23),
(4),
(51),
(0),
(0)
Select * from #A
Required Output :-
Data
23
524
723
0
89
23
4
51
0
0
我嘗試了下面的腳本,但我的資料列本身已被排序。哪個作業不正常。
Select *
from
(
Select *
,
ROW_NUMBER() over(order by data) Rn
from #A
) t
uj5u.com熱心網友回復:
正如@Larnu 提到的:沒有正確的順序,就沒有所需順序的 GTD。
看一看 SQL中的無序結果
請注意,我添加了一個 ID,它可以是 IDENTITY 甚至是日期時間戳
例子
Create table #A
(
id int,[Data] int
)
insert into #A values(1,0),
(2,0),
(3,0),
(4,0),
(5,0),
(6,23),
(7,524),
(8,723),
(9,0),
(10,89),
(11,23),
(12,4),
(13,51),
(14,0),
(15,0)
選項1:
Select *
From #A
Where ID>= (Select top 1 id From #A where data<>0 Order By ID )
Order by ID
選項 2:
Select id
,data
From (
Select *
,Flg = sum(case when Data<>0 then 1 else 0 end) over (order by id)
from #A
) A
Where Flg>0
Order By ID
結果
id data
6 23
7 524
8 723
9 0
10 89
11 23
12 4
13 51
14 0
15 0
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/402646.html
標籤:
上一篇:向Pandas資料庫添加一行
