将列添加到 table,并为扩展 table 的每一行设置值
Add column to table with set values for every row expanding the table
我正在尝试向 Redshift 中的 table 添加一列,它向所有行添加多个值但没有任何关系,除了所有行都应该受到影响。
我不确定如何描述这个,所以 Google-ing 证明很难!
视觉示例:
+----+-------+
| ID | Name |
+----+-------+
| 1 | James |
| 2 | Jane |
+----+-------+
应该变成
+----+-------+-----+
| ID | Name | Sec |
+----+-------+-----+
| 1 | James | SG1 |
| 1 | James | SG2 |
| 1 | James | SG3 |
| 2 | Jane | SG1 |
| 2 | Jane | SG2 |
| 2 | Jane | SG3 |
+----+-------+-----+
基本上每一行都添加了“SG1、SG2 和 SG3”。
谢谢,
您可以 cross join
包含以下三个值的派生 table:
select t.id, t.name, s.sec
from mytable t
cross join (select 'SG1' sec union all select 'SG2' union all select 'SG3') s
我不确定 Redshift 是否支持 values()
,这将有助于缩短语法:
select t.id, t.name, s.sec
from mytable t
cross join (values ('SG1'), ('SG2'), ('SG3')) s(sec)
我正在尝试向 Redshift 中的 table 添加一列,它向所有行添加多个值但没有任何关系,除了所有行都应该受到影响。
我不确定如何描述这个,所以 Google-ing 证明很难!
视觉示例:
+----+-------+
| ID | Name |
+----+-------+
| 1 | James |
| 2 | Jane |
+----+-------+
应该变成
+----+-------+-----+
| ID | Name | Sec |
+----+-------+-----+
| 1 | James | SG1 |
| 1 | James | SG2 |
| 1 | James | SG3 |
| 2 | Jane | SG1 |
| 2 | Jane | SG2 |
| 2 | Jane | SG3 |
+----+-------+-----+
基本上每一行都添加了“SG1、SG2 和 SG3”。
谢谢,
您可以 cross join
包含以下三个值的派生 table:
select t.id, t.name, s.sec
from mytable t
cross join (select 'SG1' sec union all select 'SG2' union all select 'SG3') s
我不确定 Redshift 是否支持 values()
,这将有助于缩短语法:
select t.id, t.name, s.sec
from mytable t
cross join (values ('SG1'), ('SG2'), ('SG3')) s(sec)