将具有多行的一列旋转到一个连接的行

Posted

技术标签:

【中文标题】将具有多行的一列旋转到一个连接的行【英文标题】:Pivot one column with multiple rows into to one concatenated row 【发布时间】:2019-08-14 03:57:51 【问题描述】:

我需要准备一份可以复制并粘贴到电子邮件字段中的电子邮件列表 (2.5k)。

我有一列,每一行都有一个电子邮件地址。 我需要最终结果看起来像: 电子邮件1@test.com;电子邮件2@test.com; email3@test.com

Select *
        from(
        Select   email, 1 as num
        FROM tabl1
        WHERE  b.stu_cde = 1 ) e
        Pivot( max(email) 
        for num in ([1]) )as pv

【问题讨论】:

提示尝试STUFF。第二件事 SO 不是代码编写服务,请分享您迄今为止尝试过的内容。对于这个问题,只有在 SO 上有 100 个答案可用。 sql 是语言,不清楚您在谈论哪个平台,即; mysqlsql-serverplsql 等。请注明正确的标签。 您使用的是什么数据库(例如 MySQL、SQL Server、Oracle 等)? “SQL”只是一种语言,而不是实际产品。 提示:更新到受支持的 SQL Server 版本并使用 string_agg() 【参考方案1】:

试试这个。而不是pivot 使用stuff 来获得你的结果。有关枢轴的更多详细信息,请找到此链接PIVOT。

 select Stuff( (select ';' + email from tabl1 for xml path('')),1,1,'') as Result

【讨论】:

这很有效,但是结果太长了,有没有办法可以把它分成五个组?

以上是关于将具有多行的一列旋转到一个连接的行的主要内容,如果未能解决你的问题,请参考以下文章

将一列拆分为多行

Excel - 合并具有共同值的行并将差异连接在一列中

如何在R中的一列中添加具有不同值的新行

请问如何获得GridView选中行的每一列的信息?

将多行单元拆分为不同的行

有没有办法根据 Python 中的一列或多列中具有相似值的行来选择表中的某些行?