假设我们有一个名为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转换为一列

sqlserver 重复的id多行转成一列 演示一个例子

原文地址: https://www.cveoy.top/t/topic/ic5h 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录