我目前有一个像这样的临时表
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
答案 0 :(得分:1)
如果您的表具有主键,并且您始终希望将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
答案 1 :(得分:0)
我喜欢AHiggins的答案,因为它解决了SQL中可能出现的问题。但是当我读到你的问题时,最初困扰我的是:为什么要在SQL中解决它? 看起来数据最初并不是在数据库中创建的,而是以某种方式导入的。 如果我是正确的 - 或者如果导出表格,编辑和重新导入 - 是一个选项,那么你可以用正则表达式来解决这个问题。所有值得注意的文本编辑都可以为您完成此操作(我使用NotePad ++进行了测试)。
如果表格位于使用制表符\t
作为分隔符的文本文件中,则可以简单地替换所有
NULL\tNULL\t(.*)\n(.*)\t(.*)\tNULL
\2\t\3\t\1
。