在Oracle中将具有多列的多行转换为一个记录

在Oracle SQL查询中我们得到了40个记录具有13列。我想合并所有这些记录到一列意味着40 * 13 = 520列在1记录。其EG-样品表记录数在Oracle中将具有多列的多行转换为一个记录

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))

SQLFiddle demo

以上是 在Oracle中将具有多列的多行转换为一个记录 的全部内容, 来源链接: utcz.com/qa/265406.html

回到顶部