I'm looking for an efficient way to convert rows to columns using T-SQL.
This the sample data:
+----+--------------+----------------+
| ID | ColumnName | Value |
+----+--------------+----------------+
| 1 | FirstName | Name 1 |
| 2 | FirstName | Name 2 |
| 3 | FirstName | Name 3 |
| 4 | FirstName | Name 4 |
| 1 | LastName | LastName 1 |
| 2 | LastName | LastName 2 |
| 3 | LastName | LastName 3 |
| 4 | LastName | LastName 4 |
| 1 | MobileNumber | MobileNumber 1 |
| 2 | MobileNumber | MobileNumber 2 |
| 3 | MobileNumber | MobileNumber 3 |
| 4 | MobileNumber | MobileNumber 4 |
+----+--------------+----------------+
This is the expected result:
+----+-----------+------------+----------------+
| ID | FirstName | LastName | MobileNumber |
+----+-----------+------------+----------------+
| 1 | Name 1 | LastName 1 | MobileNumber 1 |
| 2 | Name 2 | LastName 2 | MobileNumber 2 |
| 3 | Name 3 | LastName 3 | MobileNumber 3 |
| 4 | Name 4 | LastName 4 | MobileNumber 4 |
+----+-----------+------------+----------------+
How can I build the query?
I have tried the following links (and much more), but I can't achieve the expected result: