我正在使用SQL Server 2014. 我有一个表,BookNo列为datatype int. 此列包含以下数据
|BookNo|
1
2
3
4
5
10
12
13
25
26
27
28
Run Code Online (Sandbox Code Playgroud)
我想要 Sql 查询中的连续数字范围。从上面的数据我的输出应该像
1 to 5
10 to 13
25 to 28
Run Code Online (Sandbox Code Playgroud)
任何帮助...
我认为您可以使用这样的查询:
SELECT BookNo, ISNULL(LEAD(prev) OVER (ORDER BY BookNo) , (SELECT MAX(BookNo) FROM yourTable)) As toCon
FROM
(
SELECT *, LAG(BookNo) OVER (ORDER BY BookNo) prev, BookNo - LAG(BookNo) OVER (ORDER BY BookNo) diff
FROM yourTable) dt
WHERE
(ISNULL(diff, 0) <> 1);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
803 次 |
| 最近记录: |