sql - 合并Oracle中的行与不同列中的空值
问题描述
我的查询是根据人口统计从两个不同的客户表中提取基本人口。这两个表共享许多列,例如名称、ID、城市、州和邮政编码。表 A 包含表 B 中没有的 2 列(state2 和 state3)。表 B 包含 1 列不在表 B(国家/地区)中。
我使用联合来合并两个基本人口。每个基本人口中都有一些名称重复,但不是全部。有些是每个基本人口所独有的,因为它们存在于一个表中,而不存在于另一个表中。联合不会删除两个表中存在的重复项,因为它们在表 A 唯一列中具有信息,但在表 B 唯一列中具有空值,反之亦然。我需要弄清楚如何将它们组合成一行,所有 3 列都显示适用的数据。请参阅示例输出:
ID Name City State State2 State3 Zip Country Phone Order Year Order Status
111 Bob Anytown MP 55555 US 555-5555 2020 Valid
111 Bob Anytown MP MP MP 55555 555-5555 2020 Valid
我想返回以下内容:
ID Name City State State2 State3 Zip Country Phone Order Year Order Status
111 Bob Anytown MP MP MP 55555 US 555-5555 2020 Valid
我尝试使用不存在的逻辑,还尝试在非空条件下将联合基础加入自身,但无法获得我正在寻找的结果。谢谢!
解决方案
If you have only issue with 3 columns
then you can use group by
and max/min
to create one record with non-null data as following:
Select id, name, city, state,
Max(state2) as state2,
Max(state3) as state3,
Zip,
Max(country) as country,
Phone,
"Order Year",
"Order Status"
From (your_union_query)
Group by id, name, city, state,
Zip, Phone, "Order Year", "Order Status"
Cheers!!
推荐阅读
- haskell - 在 Haskell 中的另一个函数内部调用函数
- python - 如何从具有不完整键或条件的 DynamoDB 中获取项目?
- scheme - 这段代码的每一行发生了什么?
- c# - 使用 Polly 重试拦截器不适用于 Unity
- r - R:“相同”的令人惊讶的行为
- postgresql - 获取错误:尝试使用 golang-migrate 迁移到 postgres 数据库时无法获取锁
- python - 窗口未在外部 url 链接上打开新窗口或选项卡单击
- javascript - 使用 ajax/php 具有文件树视图的单页应用程序
- sql-server - 如何在批处理文件中获取用户输入并在我们的 sql server 代码中使用该值?
- laravel-5 - Laravel Google api 客户端获取刷新令牌并上传文件