• You should probably use pivot operation (I hope somebody will post an example), but this should also work:

    use tempdb

    declare @t table (

    Skill varchar(10) not null,

    BU1 int not null,

    BU2 int not null,

    Bu3 int not null

    )

    insert into @t

    values

    ('Skill1', 0, 0, 0),

    ('Skill2', 2, 6, 0),

    ('Skill3', 0, 0, 7),

    ('Skill4', 4, 0, 0),

    ('Skill5', 0, 7, 8)

    ;with temp as (

    select 'BU1' BU, Skill, BU1 Value from @t union all

    select 'BU2' BU, Skill, BU2 Value from @t union all

    select 'BU3' BU, Skill, BU3 Value from @t

    )

    select *

    from temp

    order by BU, Skill