I am trying to put together a select statement on some data like the below using TSQL:
Table1:
| 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 |
Which I am hoping to get results which would appear like this:
| Record No | Title | First Name | Second Name | Gender |
|---|---|---|---|---|
| 1 | Mrs | Anne | Smith | F |
| 2 | Mr | Ben | Jones | M |
I am guessing using PIVOT would the be way to achieve this? I have tried putting a statement together for this but I have no idea what I would put for the aggregation as I do not wish to aggregate in this instance.
Does anyone know how I could do this?
Advertisement
Answer
Use a MAX function. You MUST use some kind of aggregate function on PIVOT
The syntax will be something like PIVOT(MAX(Detail) FOR Property IN (Surname, FirstName....)