如何将多行转换为不同的列?
Posted
技术标签:
【中文标题】如何将多行转换为不同的列?【英文标题】:How to convert multiple rows into different columns? 【发布时间】:2013-12-18 15:02:38 【问题描述】:我有如下原始数据
UserId Email Name Age
101 abc xyz 30
101 def xyz 30
101 ghi xyz 30
并寻找如下输出
UserId Email1 Email2 Email3 Name Age
101 abc def ghi xyz 30
原始数据可能有单封或多封电子邮件,所以我试图找到一种通用的方法。现在我正在努力完成它。非常感谢任何帮助。
【问题讨论】:
假设另一个用户将有 2 封电子邮件和另外 5 封电子邮件 - 这会有点棘手。也许是一个存储过程,它创建一个临时表,其中包含足够的字段来存储用户拥有的最多电子邮件。 您知道任何用户可以预先拥有的最大电子邮件数量(设计时)吗? 也许,我正在尝试类似的方法 既然你用PL/SQL
标记了你的问题,我也添加了Oracle
标记。
查看右边缘的“相关”答案列表。
【参考方案1】:
检查listagg function。它不会为您提供真正的列,但您可以通过相应地格式化输出来使其看起来像它所做的那样。
【讨论】:
以上是关于如何将多行转换为不同的列?的主要内容,如果未能解决你的问题,请参考以下文章