這是一個網友在PASS社團問的問題,個人筆記一下
![](https://dotblogsfile.blob.core.windows.net/user/rockchang/3789c7e6-6412-416a-bedf-3141fbf523d4/1626144841.jpg)
以下是我簡單建立資料表的Code
Create Table t1(Amort int,Type int);
Go
Insert Into t1(Amort,Type)
Values
(1,2),(2,3),(3,3),(4,4),(5,4),
(6,1),(7,2),(8,4),(9,4),(10,4),
(11,3);
GO
資料如下圖所示
![](https://dotblogsfile.blob.core.windows.net/user/rockchang/3789c7e6-6412-416a-bedf-3141fbf523d4/1626145270.jpg)
接下來執行取連續範圍的語法
With tb as(
SELECT Amort, Amort - ROW_NUMBER() OVER(ORDER BY Amort) AS Num
FROM t1 Where [type]=4
)
Select * From tb Where Num = (Select max(Num) From tb);
GO
執行結果如下圖所示
![](https://dotblogsfile.blob.core.windows.net/user/rockchang/3789c7e6-6412-416a-bedf-3141fbf523d4/1626145392.jpg)
上面會取出Type=4的資料,並取出最後的連號範圍 8 ,9 ,10
我是ROCK![](https://dotblogsfile.blob.core.windows.net/user/rockchang/00000000-0000-0000-0000-000000000000/1582079398.jpg)
rockchang@mails.fju.edu.tw