在SQL中将一行值移动到另一行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在SQL中将一行值移动到另一行相关的知识,希望对你有一定的参考价值。

我目前有一个像这样的临时表

DBName API50 CounterValue
NULL    NULL   1
test1   34.5   NULL
NULL    NULL   2
test1   38.5   NULL

我想要一个脚本,它将使我的临时表如下所示

DBName API50 CounterValue
test1   34.5   1
test1   38.5   2
答案

如果您的表具有主键,并且您始终希望将CounterValue字段与表中的下一个字段相关联,则可以执行自联接:

SELECT t1.DBName, t1.API50, t2.CounterValue
FROM MyTable t1 INNER JOIN MyTable t2 ON t1.PrimaryKey -1 = t2.PrimaryKey
WHERE t1.DBName IS NOT NULL
另一答案

我喜欢AHiggins的答案,因为它解决了SQL中可能出现的问题。但是当我读到你的问题时,最初困扰我的是:为什么要在SQL中解决它?看起来数据最初并不是在数据库中创建的,而是以某种方式导入的。如果我是正确的 - 或者如果导出表格,编辑和重新导入 - 是一个选项,那么你可以用正则表达式解决这个问题。所有值得注意的文本编辑都可以为您完成此操作(我使用NotePad ++进行了测试)。

如果表格在文本文件中使用制表工具 作为分隔符,则可以简单地替换所有

NULL NULL (.*) (.*) (.*) NULL

2 3 1

以上是关于在SQL中将一行值移动到另一行的主要内容,如果未能解决你的问题,请参考以下文章

从列表视图中删除一行后刷新片段

在 Spark Scala 中将一行从一个数据集添加到另一个数据集

使用相同的主键将值从一行添加到另一行 - Oracle SQL

SQL UPDATE(从一行复制到另一行)

moveRowAtIndexPath:如何在最后一行移动到另一个部分后删除部分

当该行的 clos 与上一行具有重复值时,如何进行 sql Select 查询,以便在后续行中将某些列留空?