Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Rotate SQL Table

I have a table like below

Code        Attribute        Value
--------------------------------------
USA         Population       300M
USA         Language         US English
CANADA      Population       30M
USA         Capital          DC
CANADA      Language         CA English

How can I rotate table for 90 degrees and make a view like below to run query and sp on it?

Code        Language        Population       Capital
------------------------------------------------------
USA         US English         300M              DC
CANADA      CA English          30M              NULL
like image 648
Mertez Avatar asked Feb 03 '26 12:02

Mertez


1 Answers

You could use PIVOT (for SQL Server 2005+):

SELECT *
FROM YourTable AS T
PIVOT (MIN(Value) FOR Attribute IN ([Language],[Population],[Capital]) AS PT

For all version of SQL Server you can use this:

SELECT  Code, 
        MIN(CASE WHEN Attribute = 'Language' THEN Value END) [Language],
        MIN(CASE WHEN Attribute = 'Population' THEN Value END) [Population],
        MIN(CASE WHEN Attribute = 'Capital' THEN Value END) [Capital]
FROM YourTable
GROUP BY Code
like image 165
Lamak Avatar answered Feb 05 '26 04:02

Lamak



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!