gpt4 book ai didi

sql - 使用 Oracle 中同一表中的其他行数据更新一行

转载 作者:搜寻专家 更新时间:2023-10-30 20:54:25 25 4
gpt4 key购买 nike

我有一个包含 90 列的表,我想使用该特定组的最新记录中的值更新/插入 Null 列。

例如:我必须使用前面记录中的所有非空值更新 ID = 8 的空列(ID_PK 升序order )。如果前面的记录为空,则下一个前面的记录等等。

Grp2 类似,用该组之前的记录更新 ID = 15 的记录,依此类推...

问题是我有大约 90 列要检查和更新。是否有任何特殊的方法而不是挑出每一列并检查以前的记录值。

感谢您查看问题。

下面是该表的子集

   Group   ID_PK  TAX   REASON     DT      TYPE   FLG
===== ====== ==== ======= ======= ==== ===

Grp1 2 1 6/30/2013 SD N
Grp1 3 18813 1 MEM
Grp1 5 1 SDHC N
Grp1 8 NOR

Grp2 9 12713 3 5/20/2014 SDHC Y
Grp2 11 NOR N
Grp2 15 12713

最佳答案

我没有 oracle 数据库实例来 100% 确认这是否有效,但您可能正在寻找的函数是 lag()

http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions070.htm

你的问题是你需要让延迟返回不同数量的行,这取决于在空值之前需要遍历多少记录。您可以编写一个很长的 CASE 语句,它可以工作,但不是最佳的。但是,lag() 将是您想要的。

关于sql - 使用 Oracle 中同一表中的其他行数据更新一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29108131/

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