在 Azure SQL 数据仓库中聚合字符串

Aggregate strings in Azure SQL Data Warehouse

有没有一种方法可以在 Azure SQL 数据仓库中聚合字符串,类似于 SQL 服务器中的 string_agg 功能?

我有一些包含字符串的记录,我想将它们连接成一个字符串。

SELECT string_agg(string_col, ',') FROM table1

https://docs.microsoft.com/en-us/sql/t-sql/functions/string-agg-transact-sql

2019 年 1 月更新: 截至 2019 年 1 月 STRING_SPLIT 根据 here.[=16= 在 SQL 数据仓库中可用]

2019 年 7 月更新: 截至 2019 年 7 月,STRING_AGG 根据 here.[=16= 在 SQL 数据仓库中可用]

Azure SQL 数据仓库是一个 MPP 系统,旨在保存数十亿条记录和数 TB 的数据,因此作为第一个停靠点,您应该认真考虑它是否适合进行字符串操作。它也有点贵,具体取决于您 运行 所在的 DWU。通读这篇反模式文章。

Azure SQL 数据仓库工作负载模式和反模式 https://blogs.msdn.microsoft.com/sqlcat/2017/09/05/azure-sql-data-warehouse-workload-patterns-and-anti-patterns/

如果您真的需要在您的仓库中执行此操作,那么我最近确实使用过程方法专门针对 Azure SQL 数据仓库做了一个示例:

实现此目的的另一种方法是使用 Azure SQL 数据仓库中提供的 PIVOT 功能。 TechNet article 中对此进行了详细描述:使用 T-SQL

在 APS/PDW AU4 中在行上连接列