使用CTE创建值表 [英] Creating A Values Table with CTE

查看:70
本文介绍了使用CTE创建值表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试创建一个带有整数数据类型的1列表来计算50,然后回到1.这个表最终应该总共有100行,我想删除所有重复行的
,但我需要用CTE来完成。请帮助 

推荐答案

 我正在尝试创建一个带有整数数据类型的1列表,最多可计数50并返回到1.此表最终应该总共有100行,我想要
删除所有重复的行 

听起来很矛盾。如果您创建CTE计数到50并返回它将具有日期1,2 ... 50,49,... 1

然后当您删除重复时,您将最终只有1。 ..50

无论如何这里是如何您可以生成计数到50并且像这样返回

;With Count_Numbers
AS
(
SELECT 1 AS N, 1 AS Cnt

UNION ALL

SELECT N + CASE WHEN Cnt + 1 <= 50 THEN 1 ELSE -1 END,Cnt + 1
FROM Count_Numbers
WHERE N + CASE WHEN Cnt + 1 <= 50 THEN 1 ELSE -1 END > 0
)

SELECT N
FROM Count_Numbers
ORDER BY Cnt

OPTION (MAXRECURSION 0)


/*
Output
--------------------------------------------
N
----
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
49
48
47
46
45
44
43
42
41
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1



*/

如果你需要消除重复只使用SELECT DISTINCT而不是SELECT


这篇关于使用CTE创建值表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆