"串联" PostgreSQL来自select

时间:2018-06-11 22:06:29

标签: sql database postgresql

我有一个包含从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个

问候。

2 个答案:

答案 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更整洁。)