在Oracle中将多行多列转换为一条记录
Convert multiple rows with multiple column into one record in Oracle
在 Oracle SQL 查询中,我们得到 40 条记录,其中 13 列 。我想合并所有这些记录到一列意味着40 * 13 = 520列在1 条记录。例如- 样本 table 的记录很少
col1 col2 city cntry conti
1 abc NYC USA NA
2 def LON UK EU
3 xyz DUB UAE ASIA
然后在合并所有记录&进入一条记录之后它应该像下面的一条-
col1 col2 city cntry conti col1 col2 city cntry conti col1 col2 city cntry conti
1 abc NYC USA NA 2 def LON UK EU 3 xyz DUB UAE ASIA
如果列 col1
包含唯一值,那么您可以使用 pivot
:
select *
from t
pivot (max(col1) col1, max(col2) col2, max(city) city, max(cntry), max(conti) conti
for col1 in (1, 2, 3))
在 Oracle SQL 查询中,我们得到 40 条记录,其中 13 列 。我想合并所有这些记录到一列意味着40 * 13 = 520列在1 条记录。例如- 样本 table 的记录很少
col1 col2 city cntry conti
1 abc NYC USA NA
2 def LON UK EU
3 xyz DUB UAE ASIA
然后在合并所有记录&进入一条记录之后它应该像下面的一条-
col1 col2 city cntry conti col1 col2 city cntry conti col1 col2 city cntry conti
1 abc NYC USA NA 2 def LON UK EU 3 xyz DUB UAE ASIA
如果列 col1
包含唯一值,那么您可以使用 pivot
:
select *
from t
pivot (max(col1) col1, max(col2) col2, max(city) city, max(cntry), max(conti) conti
for col1 in (1, 2, 3))