我正在使用SQL Server 2014。我有一个BookNo列为的表datatype int。该列包含以下数据
SQL Server 2014
BookNo
datatype int
|BookNo| 1 2 3 4 5 10 12 13 25 26 27 28
我想在Sql查询中使用连续数字范围。从上面的数据我的输出应该像
1 to 5 10 to 13 25 to 28
任何帮助…
我认为您可以使用这样的查询:
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);
[SQL小提琴演示]