如何创建一个包含1到10列值的表?

时间:2016-10-11 20:28:17

标签: sql amazon-redshift

我想使用SQL和Redshift创建下表,但我不确定如何从头开始创建这种表

value
1   
2
3   
4   
5   
6   
7   
8   
9   
10  

我已根据this question

尝试了以下查询
SELECT ones.n + 10*tens.n + 1000
FROM (VALUES(0),(1),(2),(3),(4),(5),(6),(7),(8),(9)) ones(n),
     (VALUES(0),(1),(2),(3),(4),(5)                ) tens(n)
WHERE ones.n + 10*tens.n + 1000 BETWEEN 0 AND 10

但是我收到以下错误:

syntax error at or near ","
  Position: 52
SELECT ones.n + 10*tens.n + 1000
FROM (VALUES(0),(1),(2),(3),(4),(5),(6),(7),(8),(9)) ones(n),
               ^
     (VALUES(0),(1),(2),(3),(4),(5)                ) tens(n)

3 个答案:

答案 0 :(得分:1)

我不确定你最终要做什么,但是如果你需要一个SELECT语句,你总是可以直接查看union值的内联视图:

SELECT t.Number
FROM
(
    SELECT 0 AS Number UNION
    SELECT 1 AS Number UNION
    SELECT 2 AS Number UNION
    SELECT 3 AS Number UNION
    SELECT 4 AS Number UNION
    SELECT 5 AS Number UNION
    SELECT 6 AS Number UNION
    SELECT 7 AS Number UNION
    SELECT 8 AS Number
) AS t

答案 1 :(得分:0)

为什么不创建一个表然后将数据插入其中呢?

Create table t1(value int);
insert into t1 values(1),(2),(3),(4),(5),(6),(7),(8),(9),(10);

答案 2 :(得分:0)

根据the official documentation from amazon,{red}正在不支持

作为一种解决方法,您可以创建自己的临时表并插入十个数字,也可以使用以下内容:

VALUES list used as constant tables

提示:通过使用已知方法,您甚至可以生成大量表:

SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 ...