我有一个包含从0到9的INT的表格数字。 我想要做的是加入三次或更多次,并使这个值为0,...,124,125,... 998,999;
我做这样的事情:
SELECT *
FROM Digits AS Fir JOIN
Digits AS Sec
ON TRUE JOIN
Digits AS Thi
ON TRUE;
但我得到的是:
- + - + ---
0 | 0 | 0
0 | 0 | 1
0 | 0 | 2
0 | 0 | 3
0 | 0 | 4
0 | 0 | 5
0 | 0 | 6
0 | 0 | 7
0 | 0 | 8
0 | 0 | 9
0 | 1 | 0
0 | 1 | 1
0 | 1 | 2
。
。
。
。
9 | 9 | 9个
任何想法如何将其转换为获取:
0
1
2
3
。
。
。
999个
问候。
答案 0 :(得分:1)
我只想使用generate_series()
:
select val
from generate_series(0, 999) gs(val);
答案 1 :(得分:0)
您可以明确地将每个数字乘以其位置:
SELECT 100 * fir.digit + 10 * sec.digit + thi.digit
FROM digits AS fir
CROSS JOIN digits AS sec
CROSS JOIN digits AS thi
(但公平地说,Gordon's solution更整洁。)