gpt4 book ai didi

sql - 合并 NULL 的表

转载 作者:行者123 更新时间:2023-12-03 02:57:48 24 4
gpt4 key购买 nike

我有两个这样的表

表1

+-----------+----------+-------+-------------------+
| AGENCY_ID | LOCAL_ID | CLASS | LRS_ID |
+-----------+----------+-------+-------------------+
| 651 | 1 | NULL | 10200000690000001 |
| 651 | 2 | NULL | 10200000690205B01 |
| 651 | 3 | NULL | 10200000690293C01 |
| 651 | 4 | NULL | 10200000690293D01 |
+-----------+----------+-------+-------------------+

表2

+-----------+----------+-------+-------------------+
| AGENCY_ID | LOCAL_ID | CLASS | LRS_ID |
+-----------+----------+-------+-------------------+
| 651 | NULL | 1 | 10200000690000001 |
| 651 | NULL | NULL | 10200000690000091 |
| 651 | NULL | 7 | 10200000690205B01 |
| 651 | NULL | 1 | 10200000690293C01 |
+-----------+----------+-------+-------------------+

我想要的结果是

+-----------+----------+-------+-------------------+
| AGENCY_ID | LOCAL_ID | CLASS | LRS_ID |
+-----------+----------+-------+-------------------+
| 651 | 1 | 1 | 10200000690000001 |
| 651 | 2 | 7 | 10200000690205B01 |
| 651 | 3 | 1 | 10200000690293C01 |
| 651 | 4 | NULL | 10200000690293D01 |
+-----------+----------+-------+-------------------+

将表 2 中的非 NULL 值合并到表 1 中。这里我只指定了 CLASS 字段,但表 1 中有 50 多个始终为 NULL 的字段,并且可能是也可能不是表 2 中为 NULL。因此,只需手动指定我想要的字段就是问题所在,如果它的 NULL 并且表 2 有它,我希望它自动替换它。

需要注意的关键事项是 LRS_ID 是 JOIN 键。输出中不存在表 2 中存在但表 1 中不存在的 LRS_ID。表 1 中存在但表 2 中不存在的 LRS_ID 保留,但 CLASS 保留为 NULL。

最佳答案

您可以使用left join来获得预期的输出,如下所示:

select
t1.AGENCY_ID,
ISNULL(t1.LOCAL_ID,t2.LOCAL_ID)LOCAL_ID,
ISNULL(t1.CLASS,t2.CLASS)CLASS,
t1.LRS_ID
from table1 t1
left join table2 t2 on
t1.LRS_ID = t2.LRS_ID

SQL Fiddle Demo

关于sql - 合并 NULL 的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31166499/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com