sql - 使用在其他字段中具有匹配值的其他记录字段更新记录的字段
问题描述
假设我有一个包含这些字段的表:
- 开放日期
- 户口号码
- 帐户类型
- 货币
- Close_Date
- Client_Type
所有这些字段的值都不会有任何空值,除了 client_type 字段。client_type 字段将为空,但该行的大部分不为空。
我正在寻找一种方法来更新每一行的client_type,如果它为null,则使用另一行的client_type 的值,其中client_type 不为null,具有匹配的open_date、account_type、currency 和close_date。
我曾尝试合并 2 个子查询(一个搜索空,另一个搜索非空),然后更新表 client_type,其中 2 个子查询的 open_date、account_type、currency 和 close_date 需要匹配。这条语句运行了 20 多分钟,我不得不取消它,无论如何我怀疑它是否正确。
有没有一种有效的方法来做到这一点?
解决方案
这样的事情呢?您仅在哪里自行加入表Client_Type IS NOT NULL
。然后当 时Client_Type IS NULL
,使用Client_Type
from 自连接。
SELECT t1.Open_date,
t1.Account_No,
t1.Account_Type,
t1.Currency,
t1.Close_Date,
NVL(t1.Client_Type, t2.Client_Type)
FROM t1
LEFT JOIN t1 t2
ON t1.Open_date = t2.Open_date
AND t1.Account_No = t2.Account_No
AND t1.Account_Type = t2.Account_Type
AND t1.Currency = t2.Currency
AND t1.Close_Date = t2.Close_Date
AND Client_Type IS NOT NULL;
推荐阅读
- python - 如何在不重新创建实例的情况下将数据添加到 pandas.DataFrame
- javascript - 使用带有多个文件Javascript的构造函数
- javascript - 在 null 之后将值设置为零
- c# - 有助于了解代币交换服务以及如何实施?
- javascript - Typeorm Postgres 映射嵌套关系
- javascript - 如何在 next() 方法重定向后修复变量值始终为空
- flutter - 如何删除小部件“步骤”的标题
- google-apps-script - 列出活跃用户的宏
- css - 在 CSS 网格中居中文本
- python - 更改 Sublime Text 侧边栏的顺序