首页 > 解决方案 > 在来自不同表的列的列中插入值

问题描述

我有下表:

|   Cod  |  SKA  |   SKB |   SKC  |
|   AGE  |   1   |   10  |   100  |
|   AUC  |   2   |   11  |   101  |
|   BER  |   3   |   12  |   102  |
|   AGE  |   4   |   13  |   103  |
|   AUC  |   5   |   14  |   104  |
|   BER  |   6   |   15  |   105  |

我想在另一个表中添加这些列以得到类似这样的内容:

|   Cod  |  SKA  |   SKB |   SKC  |
|   AGE  |   1   |   10  |   100  |
|   AGE  |   1   |   11  |   101  |
|   AGE  |   1   |   12  |   102  |
|   AGE  |   1   |   13  |   103  |
|   AGE  |   1   |   14  |   104  |
|   AUC  |   1   |   15  |   105  |
|   AUC  |   2   |   10  |   100  |
|   AUC  |   2   |   11  |   101  |
|   AUC  |   2   |   12  |   102  |
|   AUC  |   2   |   13  |   103  |
|   AUC  |   2   |   14  |   104  |
|   AUC  |   2   |   15  |   105  |
|   ...  |   ... |  ...  |   ...  |
|   ...  |   ... |  ...  |   ...  |
|   ...  |   ... |  ...  |   ...  |

因此,每个 Cod、SKB 和 SKC 根据一个 SKA,然后根据第二个等。对于所有 SK 列,

我怎样才能得到这个结果?加入?

编辑

感谢您的评论和回答,我会尝试交叉加入!

标签: sqloracle

解决方案


您可以通过使用cross join. 但是,由于您的Cod列具有重复值,您可能需要选择distinct行;否则你会有重复的。

select distinct
    t1.Cod, 
    t2.SKA, t2.SKB, t2.SKC
from
    mytable t1
    cross join mytable t2

请参阅此SQL Fiddle中的示例。


推荐阅读