我有一个客户提供的数据集,如下所示:(简化)
|ForiegnKey|Code1|Code2|Code3|
|==========|=====|=====|=====|
|A |10 |20 |30 |
|A |10 |20 |30 |
|B |100 |200 | |
|C |25 |35 |40 |
|D |1000 | | |
|E | | |9999 |
对于最终产品,我需要一次将其输入到新的表 1 代码中,如下所示:
|ForiegnKey|Sequence|Code|
|A |1 |10 |
|A |2 |20 |
|A |3 |30 |
|B |1 |100 |
|C |1 |25 |
|C |2 |35 |
|C |3 |40 |
|D |1 |1000|
|E |1 |9999|
对于我的问题,是否有一种简单的方法可以在不涉及使用联合的查询中执行此操作?
我必须根据 ForiegnKey 的值生成序列号(即在 ForiegnKey E 的情况下,即使它在列 Code3 中,我也需要它的序列为 1。)我目前的思路是,如果我可以在不使用联合的情况下将其从表中取出,我可以在同一语句中生成序列 ID。
应跳过 D-2 和 3 以及 E-1 和 2 等空代码值。
我已经开始使用临时表来解决这个问题,但我想我会在这里检查一下,看看是否有更简单的方法。
谢谢