SQL 中的 PIVOT(没有聚合?)
PIVOT (without aggregation?) in SQL
我正在尝试使用 TSQL 对一些数据进行 select 语句组合,如下所示:
表 1:
Property
Detail
Record No
Surname
Smith
1
First Name
Anne
1
Title
Mrs
1
Gender
F
1
Surname
Jones
2
First Name
Ben
2
Title
Mr
2
Gender
M
2
我希望得到如下所示的结果:
Record No
Title
First Name
Second Name
Gender
1
Mrs
Anne
Smith
F
2
Mr
Ben
Jones
M
我猜想使用 PIVOT 是实现这一目标的方法吗?我已经尝试为此整理一个声明,但我不知道我会为聚合添加什么,因为我不希望在这种情况下进行聚合。
有人知道我该怎么做吗?
使用MAX
函数。您必须在 PIVOT
上使用某种聚合函数
语法类似于PIVOT(MAX(Detail) FOR Property IN (Surname, FirstName....)
我正在尝试使用 TSQL 对一些数据进行 select 语句组合,如下所示:
表 1:
Property | Detail | Record No |
---|---|---|
Surname | Smith | 1 |
First Name | Anne | 1 |
Title | Mrs | 1 |
Gender | F | 1 |
Surname | Jones | 2 |
First Name | Ben | 2 |
Title | Mr | 2 |
Gender | M | 2 |
我希望得到如下所示的结果:
Record No | Title | First Name | Second Name | Gender |
---|---|---|---|---|
1 | Mrs | Anne | Smith | F |
2 | Mr | Ben | Jones | M |
我猜想使用 PIVOT 是实现这一目标的方法吗?我已经尝试为此整理一个声明,但我不知道我会为聚合添加什么,因为我不希望在这种情况下进行聚合。
有人知道我该怎么做吗?
使用MAX
函数。您必须在 PIVOT
语法类似于PIVOT(MAX(Detail) FOR Property IN (Surname, FirstName....)