SQLSERVEr字符行转列
时间: 2023-12-13 07:33:03 浏览: 69
sqlserver 实现 行转列 split 分割的函数
SQL Server中的行转列可以使用PIVOT关键字来实现。下面是一个简单的例子,演示如何将行转列:
假设我们有一个名为Employee的表,其中包含员工的姓名和部门:
| Name | Department |
|--------|------------|
| Alice | HR |
| Bob | IT |
| Charlie| IT |
| Dave | HR |
现在我们想要将部门作为列,员工姓名作为行,我们可以使用PIVOT关键字来实现:
```sql
SELECT *
FROM (
SELECT Name, Department
FROM Employee
) AS SourceTable
PIVOT (
MAX(Name)
FOR Department IN ([HR], [IT])
) AS PivotTable;
```
上述查询将返回以下结果:
| HR | IT |
|--------|---------|
| Alice | Bob |
| Dave | Charlie |
在上面的查询中,我们首先使用子查询从Employee表中选择Name和Department列。然后,我们使用PIVOT关键字将Department列转换为列,Name列转换为行。在PIVOT子句中,我们使用MAX聚合函数来将多个值合并为单个值。最后,我们使用FOR子句指定要转换为列的列,并使用IN子句指定列的名称。
阅读全文