MS SQL 查询结果再行转列
时间: 2023-08-12 09:15:48 浏览: 47
你可以使用 PIVOT 函数来将 MS SQL 查询结果行转列。PIVOT 函数将一列的值转换为多列,并将每个值的行转换为一个新行。下面是一个示例查询,它将一列的值转换为多列:
```
SELECT *
FROM (
SELECT Column1, Column2, Column3
FROM YourTable
) AS SourceTable
PIVOT (
MAX(Column3)
FOR Column2 IN (Value1, Value2, Value3)
) AS PivotTable;
```
在这个查询中,我们选择了三列数据 Column1、Column2 和 Column3,并使用 PIVOT 函数将 Column2 中的值转换为三个新列 Value1、Value2 和 Value3。每个新列中的值都是在 Column3 中找到的。你可以根据自己的需要修改这个查询来适应你的数据。
相关问题
MS SQL 查询结果再列转行
你可以使用 UNPIVOT 函数将 MS SQL 查询结果列转行。UNPIVOT 函数将多列的值转换为一列,并将每个值的列转换为一个新行。下面是一个示例查询,它将多列的值转换为一列:
```
SELECT Column1, Column2, Column3
FROM YourTable
UNPIVOT (
Value FOR Attribute IN (Column2, Column3)
) AS UnpivotTable;
```
在这个查询中,我们选择了三列数据 Column1、Column2 和 Column3,并使用 UNPIVOT 函数将 Column2 和 Column3 中的值转换为一列 Value,并将每个值的列转换为一个新行 Attribute。你可以根据自己的需要修改这个查询来适应你的数据。
MS SQL 加条件查询结果再列转行
你可以在使用 UNPIVOT 函数将 MS SQL 查询结果列转行时添加条件。条件可以是任何适合你的列和值的 WHERE 子句,它将仅返回满足条件的行。下面是一个示例查询,它将多列的值转换为一列,并仅返回 Column2 中值为 'Value1' 的行:
```
SELECT Column1, Column2, Column3
FROM YourTable
UNPIVOT (
Value FOR Attribute IN (Column2, Column3)
) AS UnpivotTable
WHERE Attribute = 'Column2' AND Value = 'Value1';
```
在这个查询中,我们选择了三列数据 Column1、Column2 和 Column3,并使用 UNPIVOT 函数将 Column2 和 Column3 中的值转换为一列 Value,并将每个值的列转换为一个新行 Attribute。然后我们添加了一个 WHERE 子句,以仅返回 Attribute 等于 'Column2' 且 Value 等于 'Value1' 的行。你可以根据自己的需要修改这个查询来适应你的数据。