sqlserver 重复的id多行转成一列 演示一个例子
假设我们有一个名为employees的表,其中包含以下数据:
| ID | Name | Department | |----|--------|------------| | 1 | John | IT | | 1 | John | HR | | 2 | Alice | Sales | | 3 | Mike | Finance | | 3 | Mike | IT |
我们想要将具有相同ID的多行记录转换为一列。可以使用以下SQL查询来实现:
SELECT ID,
STRING_AGG(Name, ', ') AS Names,
STRING_AGG(Department, ', ') AS Departments
FROM employees
GROUP BY ID
以上查询将会返回以下结果:
| ID | Names | Departments | |----|--------------|-----------------| | 1 | John, John | IT, HR | | 2 | Alice | Sales | | 3 | Mike, Mike | Finance, IT |
在这个例子中,我们使用了STRING_AGG函数来将重复的值连接成一个字符串,并使用逗号分隔。通过使用GROUP BY子句,我们可以按照ID对数据进行分组,并将重复的ID转换为一列
原文地址: https://www.cveoy.top/t/topic/ic5h 著作权归作者所有。请勿转载和采集!