Sql server 如何使用另一个表转换所有字段

Sql server 如何使用另一个表转换所有字段,sql-server,select,inner-join,multiple-tables,Sql Server,Select,Inner Join,Multiple Tables,我正在使用SQL Server。 我想使用另一个表“翻译”所有返回的值 “工作”表如下所示: Id |item1 |item2 |item3 |item4 |item5 |item6 |item7 |item8 |item9 |item10 ------------------------------------------------------------------------- 1 | 1019 | 3009 | 4014 | 3001 | 4005 | 4019 | 4006 | 2

我正在使用SQL Server。 我想使用另一个表“翻译”所有返回的值

“工作”表如下所示:

Id |item1 |item2 |item3 |item4 |item5 |item6 |item7 |item8 |item9 |item10
-------------------------------------------------------------------------
 1 | 1019 | 3009 | 4014 | 3001 | 4005 | 4019 | 4006 | 2021 |(NULL)|(NULL)
 2 | 1019 | 3009 | 4014 | 3001 | 4005 | 3012 | 4019 | 4006 | 2021 |(NULL)
 3 | 1019 | 3009 | 4014 | 3002 | 4004 | 4018 | 4006 | 2021 |(NULL)|(NULL)
 4 | 1019 | 3009 | 4014 | 3001 | 4005 | 3012 | 4019 | 4006 | 2021 |(NULL)
以及转换表“设备”:

然后我查询:
SELECT*fromworkwhereid=1

我想得到这个:

1 | TVR1 | TCR1 | B2D15 | E2 | B2D6 | P306B | B2D7 | CAMION |(NULL)|(NULL)
毫无疑问,我们必须使用一些连接。。。或 我将非常感谢你的帮助。提前谢谢你


再见:)

虽然这可以通过使用来完成,然后是
左连接,然后是
透视,但更合适的解决方案是首先规范化数据

在经典的关系数据库设计中,您的“工作”表将有3列:

  • 唯一标识符(
    id
  • “分组键”(
    group
  • 数据(
    项目id

  • 然后,您只需将此表与“设备”表连接起来,并在一个表示层中处理表示,该层负责“取消数据透视”。

    非常感谢@Amit!通过更改设计,可以更轻松地提出一个简单的请求:
    SELECT*FROM TRAVAIL internal JOIN equipment ON TRAVAIL.I_Id=equipment.P_Id
    1 | TVR1 | TCR1 | B2D15 | E2 | B2D6 | P306B | B2D7 | CAMION |(NULL)|(NULL)