生成连续编号
-- 求连续编号(1):求0~99的数
select D1.digit+(D2.digit*10) seq
from Digits D1 cross join Digits D2 --交叉连接:得到所有可能的组合
order by seq;
/*D1代表个位数字的集合,D2代表十位数字的集合*/
-- 求连续编号(2):求1~542的数
select D1.digit+(D2.digit*10)+(D3.digit*100) seq
from Digits D1 cross join Digits D2 cross join Digits D3
where D1.digit+(D2.digit*10)+(D3.digit*100) between 1 and 542
order by seq;
/*通过将这个查询的结果存储在视图里,就可以在需要连续编号时通过简单的select来获取需要的编号*/
-- 生成序列视图(包含0~999)
create view Sequence(seq)
as select D1.digit+(D2.digit*10)+(D3.digit*100)
from Digits D1 cross join Digits D2 cross join Digits D3;
-- 从序列视图中获取1~100
select seq
from Sequence
where seq between 1