see illustration below
declare @t table
(
Empno int,
Ename varchar(10)
)
insert @t
values(10, 'Raju'),
(20, 'Ramu')
select cat,
MAX(CASE WHEN seq=1 THEN value END) AS Val1,
MAX(CASE WHEN seq=2 then value END) AS Val2
from
(
select *,ROW_NUMBER() OVER (PARTITION BY cat ORDER BY value) AS Seq
from (SELECT CAST(Empno AS varchar(10)) AS Empno,Ename FROM @t)t
unpivot (value for cat in (Empno,Ename))u
)m
group by cat
output
-------------------------------------
cat Val1 Val2
-------------------------------------
Empno 10 20
Ename Raju Ramu
------------------------------------------------------------------------------------------------------
SQL Server MVP
http://visakhm.blogspot.com/