sql - 用于更新 DB2 中数据集间隙的 SQL 查询
问题描述
我的 SQL 更新有以下问题,或者更好地说:我不知道该怎么做。
我必须更新 DB2 上的数据集。我的数据集看起来像。
NUM_CUS COD_ENTITY BRN_OPEN COD_PRODSERV NUM_ACCOUNT KEY_ENTITY KEY_PARTIC PARTSEQ
11111111 0100 0010 98 60607998 0100 T 01
20000264 0100 0010 98 60607998 0100 Y 02
现在必须更新行:NUM_CUS = '20000264',尤其是字段 PARTSEQ。
它必须更新为 PARTSEQ = '01'。
NUM_CUS: '11111111' 和 KEY_PARTIC = 'T' 的行是'主行'!但也可能是我们有 3 行在 PARTSEQ 中有间隙,就像这里
NUM_CUS COD_ENTITY BRN_OPEN COD_PRODSERV NUM_ACCOUNT KEY_ENTITY KEY_PARTIC PARTSEQ
11111111 0100 0010 98 60607998 0100 T 01
22222222 0100 0010 98 60607998 0100 Y 03
20000264 0100 0010 98 60607998 0100 Y 04
然后 PARTSEQ: 03 应该更新为 01,PARTSEQ: 04 必须更新为 02。
有人可以告诉我如何将字段更新为适当的数字。
解决方案
尝试这个:
UPDATE
(
SELECT PARTSEQ, LPAD(ROW_NUMBER() OVER (ORDER BY PARTSEQ), 2, '0') PARTSEQ_NEW
FROM MYTAB
WHERE KEY_PARTIC <> 'T'
)
SET PARTSEQ = PARTSEQ_NEW
WHERE PARTSEQ <> PARTSEQ_NEW;
推荐阅读
- php - 从 php 文件运行 C++ 可执行文件 - 从通过 Web 界面单击的 HTML 按钮调用的 php 文件
- mysql - 如何动态透视mysql表?
- vue.js - Uncaught (in promise) TypeError: Cannot read properties of null (reading 'insertBefore')
- unreal-engine4 - 虚幻引擎编译系统如何工作?
- react-native - FlatList TouchableOpacity 项目看起来被按下
- stored-procedures - 在 UDF 或存储过程中使用参数返回表
- css - CSS Grid - 跨列和行?
- visual-studio-code - Visual Studio Code Live Share 扩展错误
- python - 为什么 numpy.asarray() 不适用于大量数组?
- c# - WCF - GetCallbackChannel 可靠吗?