如何动态更改列名?

时间:2014-08-11 10:00:04

标签: sql sql-server-2008

在数据库中有两个表。 表1和表2

表1:

   column1    column2    column3

    271          211       111

    301          333        333

表2:

  ColumnNo   Value  Desc

  1           271   aaa

  3           111    bbb

  2           211    ccc

  2           333    ddd

  1           301     eee

此处columnNo指的是第一个表>> 1 = Column1,2 = column2,3 =栏3。

所以我必须使用Desc更新第一个表列值。 所以更新的table1将是

 column1   column2  column3

  aaa        ccc     bbb

  eee        ddd     ddd
像这样。

因为有很多列和值,所以如何动态更改列名并更新值?

1 个答案:

答案 0 :(得分:0)

试试这个

UPDATE T1
SET T1.column1 = T2.Desc,T1.column2 = T3.Desc,T1.column3 = T4.Desc
FROM Table1 T1 Inner Join Table2 T2 ON T1.column1 = T2.Value
               Inner Join Table2 T3 ON T1.column2 = T3.Value  
               Inner Join Table2 T4 ON T1.column3 = T4.Value

<强> FIDDLE DEMO