sql语句:连表查询,如果以一个字段的值作为条件修改其他字段的值

本文描述了一个技术问题,如何通过SQL操作更新业务表A中的旧行政区划编码并补全区划名称,涉及到行政区划表B的最新编码和旧新代码映射表C的使用。关键步骤包括联查和条件替换以解决区划名称缺失的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.要求

行政区划编码更新,表A中含有的是旧的行政区划,关联区划表查询区划名称为空,现在需要把区划名称补全并且把旧编码更新为新编码。(例如陕西省的安塞县改成了安塞区且区划编码也改了,但是业务表中的编码存的还是旧代码)

2.表情况

1.业务A表 (别名a)

2.行政区划表(别名b)

3.旧代码新代码映射表(包含新名称)(别名c)

3.思路

第一步:

将a表与b表按行政区划代码联查,保留a的行政区划和b的区划名称(此时保留的是a的行政区划代码,但是由于区划表b存的是最新代码,所以映射后旧代码找不到对应的名称,所以为null)

第二步:

拿已经联查后的a表与c表按区划代码联查修正a中的旧代码已经补全对应的名称

关键sql:

(case when a.行政区划名称 isnull then c.行政区划名称 else a.行政区划名称 end) as xzqhmc,
(case when a.行政区划名称 isnull then c.行政区划 else a.行政区划 end) as xzqh

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值