我有如下表_A 和表_B,我如何创建一个 UNION 来生成类似表_C 的结果集,以便保留表_A 和表_B 中列的原始内容。
表_A:
ID High_Level_Text
-------------------------
01 High Level Text One
02 High Level Text Two
03 High Level Text Thr
表_B:
ID Key Low_Level_Text
----------------------------------
01 001 Low Level Text 01/001
01 002 Low Level Text 01/002
01 003 Low Level Text 01/003
02 001 Low Level Text 02/001
03 002 Low Level Text 03/002
表_C:
ID Key High_Level_Text Low_Level_Text
-------------------------------------------------------
01 High Level Text One
01 001 Low Level Text 01/001
01 002 Low Level Text 01/002
01 003 Low Level Text 01/003
02 High Level Text Two
02 001 Low Level Text 02/001
03 High Level Text Thr
03 002 Low Level Text 03/002
在Table_C中,对于那些没有来自Table_A的原始数据的记录,High_Level_Text列的记录留空,与Table_B的Low_Level_Text和Key列相同
最佳答案
你可以这样做:
select a.id as "ID",
null as "KEY",
a.High_level_text as "High_level_text",
null as "Low_Level_Text"
from table_a a
union
select b.id,
b.key,
null,
b.Low_Level_Text
from table_b b
order by 1, 2
这会在第一个 select
中设置您想要的列(列名在 UNION
的第一个 select 中定义)。然后你在最后order by
,这将影响完整的结果集。
关于sql - 合并两个表而不破坏原始列的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19531220/