列转行SQL nvarchar
时间: 2023-07-27 20:32:35 浏览: 199
在 SQL Server 中,您可以使用 UNPIVOT 操作将列转换为行。以下是一个示例:
假设您有一个名为 "Sales" 的表,其中包含以下数据:
| Product | Jan | Feb | Mar |
|---------|-----|-----|-----|
| A | 100 | 200 | 150 |
| B | 150 | 250 | 200 |
现在,如果您想将每个产品的销售数据转换为行,可以使用以下查询:
```
SELECT Product, Month, Sales
FROM
(
SELECT Product, Jan, Feb, Mar
FROM Sales
) AS SourceTable
UNPIVOT
(
Sales FOR Month IN (Jan, Feb, Mar)
) AS UnpivotTable;
```
结果会显示如下:
| Product | Month | Sales |
|---------|-------|-------|
| A | Jan | 100 |
| A | Feb | 200 |
| A | Mar | 150 |
| B | Jan | 150 |
| B | Feb | 250 |
| B | Mar | 200 |
注意:在使用 UNPIVOT 操作时,需要指定要转换为行的列名,并且需要提供一个新的列来存储转换后的值。在本例中,新的列名为 "Sales"。如果原始表中有多个列需要转换为行,可以多次使用 UNPIVOT 操作。另外,nvarchar 类型的数据可以直接使用 UNPIVOT 操作进行转换。
阅读全文