Reputation: 2958
I am using SQL Server 2012 for my database. Now, I have one table with following details.
ID COLUMN1 COLUMN2
1 A B
Now i want result like this.
ID Values
1 A
1 B
Can any one suggest me how to do? I know i can do using pivot or unpivot. but i dont know how to do? and is there other way to do this?
Please help me out to write query for the same.
Thanks in advance.
Upvotes: 6
Views: 8443
Reputation: 247670
You can use UNPIVOT to get the final result:
select id, value
from yourtable
unpivot
(
value
for col in (COLUMN1, COLUMN2)
) u;
Or you can use CROSS APPLY to get it:
select id, value
from yourtable
cross apply
(
values ('COLUMN1', COLUMN1), ('COLUMN2', COLUMN2)
) c (col, value)
Upvotes: 6
Reputation: 204746
select id, col1 as value
from your_table
union all
select id, col2 as value
from your_table
Upvotes: 3