Question

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.

Was it helpful?

Solution

You can use UNPIVOT to get the final result:

select id, value
from yourtable
unpivot
(
  value
  for col in (COLUMN1, COLUMN2)
) u;

See SQL Fiddle with Demo

Or you can use CROSS APPLY to get it:

select id, value
from yourtable
cross apply
(
  values ('COLUMN1', COLUMN1), ('COLUMN2', COLUMN2)
) c (col, value)

See SQL Fiddle with Demo

OTHER TIPS

select id, col1 as value
from your_table
union all
select id, col2 as value
from your_table
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top