我有一个临时表,我需要在其中插入两个日期范围之间的所有年份。例如,如果日期范围是从 2010 年到 2018 年,那么表格将有
2010
2011
2012
2013
2014
2015
2016
2017
2018
任何人都有任何查询,我可以将这些值插入到临时表中,而无需使用 while 循环或游标。
最佳答案
使用递归 CTE。像这样
DECLARE @Min INT=2010,@Max INT=2018
;WITH CTE
AS
(
SELECT
MyData = @MIn
UNION ALL
SELECT
MyData = MyData+1
FROM CTE
WHERE MyData < @Max
)
SELECT
*
FROM CTE
结果
关于sql - 在没有循环和游标的临时表中插入日期范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48092639/