• Quick suggestion

    😎

    ;WITH FIRST_NAME_DATA AS

    (

    SELECT

    FN.C_ID

    ,FN.C01

    FROM dbo.TestTbl1 TT

    CROSS APPLY

    (

    SELECT 1, col1 UNION ALL

    SELECT 2, col2 UNION ALL

    SELECT 3, col3 UNION ALL

    SELECT 4, col4

    ) FN(C_ID,C01)

    WHERE TT.Name = 'FirstName'

    )

    ,LAST_NAME_DATA AS

    (

    SELECT

    FN.C_ID

    ,FN.C01

    FROM dbo.TestTbl1 TT

    CROSS APPLY

    (

    SELECT 1, col1 UNION ALL

    SELECT 2, col2 UNION ALL

    SELECT 3, col3 UNION ALL

    SELECT 4, col4

    ) FN(C_ID,C01)

    WHERE TT.Name = 'LastName'

    )

    SELECT

    FND.C01 AS FirstName

    ,LND.C01 AS LastName

    FROM FIRST_NAME_DATA FND

    INNER JOIN LAST_NAME_DATA LND

    ON FND.C_ID = LND.C_ID;

    Output

    FirstName LastName

    ----------- -----------

    1 11

    2 22

    3 33

    4 44