在SQL Server中,可以使用PIVOT函数将按ID分组的行转列。以下是一个示例解决方案:
假设有一个名为"table1"的表,包含以下数据:
ID | Name | Value |
---|---|---|
1 | John | 10 |
1 | Mary | 20 |
2 | David | 15 |
2 | Sarah | 25 |
要按ID分组,并将每个ID的Name和Value转为列,可以使用如下代码:
SELECT *
FROM
(
SELECT ID, Name, Value
FROM table1
) AS src
PIVOT
(
MAX(Value)
FOR Name IN ([John], [Mary], [David], [Sarah])
) AS pvt
运行以上代码后,将得到以下结果:
ID | John | Mary | David | Sarah |
---|---|---|---|---|
1 | 10 | 20 | NULL | NULL |
2 | NULL | NULL | 15 | 25 |
其中,每个Name值被转换为一个列,并且每个ID对应的Name的Value值在相应的列中显示。如果某个ID下没有对应的Name,则显示为NULL。