最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了。
所以,觉得有必要记录下来,这样以后再次碰到这类问题,也能从中获取解答的思路。
求一个获取连续值的方法。
http://bbs.csdn.net/topics/390620211
这个用spt_values也可以。
如果是SQL Server 2005及以后的版本,可以通过递归来实现,非常简单。
我的解法:
;with r
as
(
select 1 as number --第一个数
union all
select number + 1
from r
where r.number < 10 --最后一个数
)
select *
from r
--option(maxrecursion 1000)
/*
number
1
2
3
4
5
6
7
8
9
10
*/