【发布时间】:2021-06-21 11:50:12
【问题描述】:
使用 Postgres、SQL Developer 和 dBeaver。
我需要通过扫描一系列列(确切地说是 36 列)来验证数据迁移,以确保从 36 列中提取了两个唯一值。
迁移的规则是:
- 对于表中的每个prg_id,按升序遍历所有chan1..36值
- 将 chan1 值插入 schema.prg.vcn1 列
- 遍历剩余的 CHAN(即 chan2、chan3 等)。如果找到另一个唯一的 CHAN,请将其插入 vcn2 列。
- 停止处理此 prg_id 并继续下一个。
这一切都发生在同一个表 (schema.prg) 中。数据示例如下所示。后两列是我正在寻求正确填充的列。下面的示例显示了成功的数据库迁移应该是什么样子(我有大约 4,500 行要验证)。
| prg_id | chan1 | chan2 | chan3 | ...chan36 | vcn1 | vcn2 |
|---|---|---|---|---|---|---|
| 5100 | 100 | 100 | 262 | 0 | 100 | 262 |
| 3252 | 43 | 43 | 52 | 52 | 43 | 52 |
| 4272 | 76 | null | null | null | 76 | 0 |
我尝试使用 CASE 语句进行查询,但无法正确处理。任何帮助表示赞赏。
【问题讨论】:
-
修复你的数据模型!像这样连续存储值非常麻烦!
标签: sql postgresql dbeaver