【发布时间】:2018-05-17 17:35:41
【问题描述】:
我在 Redshift 中有一个名为“table_1”的表,列名为“column_name_1”、“column_name_2”、“column_name_3”......“column_m”等。
table_1
column_name_1 column_name_2 column_name_3 column_name_4 .... column_name_m
我想根据以下条件创建一个名为“temp_table”的临时表:
- 选择名为的 3 列
'column_name_1','column_name_2','column_name_3'
我确定它已经存在于“table_1”中。
- 选择名为“column_n”的列,我不确定它是否存在于“table_1”中。如果 'table_1' 中存在 'column_n',则直接选择它,如果不存在,则在 'temp_table' 中创建一个名为 'column_n' 的列,并为其所有行分配一个字符值 'val_n'。
所以我最终的“temp_table”将如下所示:
- 如果“table_1”中存在“column_n”
temp_table
column_name_1 column_name_2 column_name_3 column_n
col_1_val_1 col_2_val_1 col_3_val_1 col_n_val_1
col_1_val_2 col_2_val_2 col_3_val_2 col_n_val_2
col_1_val_3 col_2_val_3 col_3_val_3 col_n_val_3
.... .... .... ....
- 如果“table_1”中不存在“column_n”
temp_table
column_name_1 column_name_2 column_name_3 column_n
col_1_val_1 col_2_val_1 col_3_val_1 val_n
col_1_val_2 col_2_val_2 col_3_val_2 val_n
col_1_val_3 col_2_val_3 col_3_val_3 val_n
.... .... .... ....
我试图从这个链接中获得一些提示:How can I test if a column exists in a table using an SQL statement,但不知何故,我没有成功测试创建临时表中的条件。
【问题讨论】:
标签: sql case amazon-redshift create-table alter-table