Search code examples
sqlsql-serverpivotunpivot

SQL convert a row into two columns (label-value)


I query my database and get the following row:

**NAME | DESCRIPTION | MOBILE | EMAIL | CENTER |**

George | Nice guy    | 644213568 | geo@gmail.com | NASA |

I'd like to convert it into:

LABEL | VALUE

Name | George

DESCRIPTION | Nice guy

MOBILE | 644213568

EMAIL | geo@gmail.com

CENTER | NASA

Thank you in advance!!!!!


Solution

  • You want apply :

    select tt.LABEL, tt.VALUE
    from table t cross apply
         ( values ('DESCRIPTION', DESCRIPTION), ('MOBILE', MOBILE), ('EMAIL', EMAIL), ('CENTER', CENTER) 
         ) tt(LABEL, VALUE)
     where t.USER_ID = 23;