sql - 将来自不同表的列的值插入到列中

标签 sql oracle

我有下表:

|   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 列,

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

编辑

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

最佳答案

我认为您希望交叉连接来获取四列的所有组合:

select cod.cod, a.ska, b.skb, c.skc
from (select distinct cod from t) cod cross join
     (select distinct ska from t) a cross join
     (select distinct skb from t) b cross join
     (select distinct skc from t) c ;

您可能需要调整此查询以满足您的需求。您的文本描述了一件事,但示例数据略有不同。我希望 AGE/2 出现在结果中。

关于sql - 将来自不同表的列的值插入到列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51085764/

相关文章:

mysql - 每天在大表上添加和删除索引是一个好习惯吗?

c# - 我如何将从数据库中检索到的 int 转换为字符串

mysql - 如何在 ADO.NET 4 中检索主键元数据?

c# - C# 中的 Oracle,绑定(bind)变量和 ID IN (1, 2, 3) 之类的查询

oracle - 如何限制oracle存储过程中的NULL输入参数

php - 如何从 PHP 函数中返回 MySQL 字符串?

sql - 使用查找表和替换函数更新子字符串

java - JSP:useBean类属性 "javaPackage.java class"无效

oracle - 关于 Oracle 版本控制系统的建议

mysql - 获取周间隔日期以及按周分组的 AVG (`player_count` )