我试图在两个表之间进行完全外部联接,并在Teradata SQL中为结果添加唯一的ID。
Example:
__Table A__
id col1
1 hi
2 hello
__Table B__
id col1
1 hey
4 whatsup
_Table C (result full outer join)_
a_id b_id a_col1 b_col1
1 1 hi hey
2 null hello null
null 4 null whatsup
如何为表C添加唯一的主键?我想要以下内容:
_Table D (result full outer join with primary key "id")_
id a_id b_id a_col1 b_col1
123 1 1 hi hey
234 2 null hello null
567 null 4 null whatsup
我尝试过的事情:
create table table_c as (
select
a_id,
b_id,
a.col1 as a_col1,
b.col1 as b_col1
from table_a as a
full outer join table b
on a.id = b.id
)
with data primary key (a_id)
上面的问题是,它希望使用1个主键来创建表,但是a_id和b_id在table_c中都不是唯一的。
答案 0 :(得分:0)
也许您真正想要的是将两个id合并为一个列:
create table table_c as
select coalesce(a.id, b.id) as id
a.col1 as a_col1,
b.col1 as b_col1
from table_a as a full outer join
table b
on a.id = b.id;
假设两个表中都没有重复项,并且id
不是null
,那么这应该作为主键。