Sql server 如何使用另一个表转换所有字段
我正在使用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
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)