我有一个带有开始和结束邮政编码的区域表,但它分别加载了每个邮政编码。我现在需要创建一个报告,在指定的区域中显示拉链,但它返回一堆记录。我想要做的是从这个连续拉链列表中创建一个范围。
我的表格包含以下内容
FromZip ToZip
07543 07543
07604 07604
07509 07509
07510 07510
07511 07511
07512 07512
07513 07513
07514 07514
我想返回
FromZip ToZip
07543 07543
07604 07604
07509 07514
答案 0 :(得分:1)
请尝试以下查询
select
MIN(FromZip) as FromZip,
MAX(ToZip) as ToZip
from
(
Select
*,
ROW_NUMBER() OVER(ORDER BY ToZip asc) as ranking
from tbl
) t
group by
(CAST(ToZip AS INT)-Ranking)
order by
(CAST(ToZip AS INT)-Ranking)
<强> Live SQL demo here 强>