如何将所有字段转换为另一个 table
How to convert all the fields with another table
我正在使用 SQL 服务器。
我想 "translate" 使用另一个 table.
所有返回值
"WORK" table 看起来像这样:
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)
和转换 table "EQUIPEMENT" :
Id | Name
-------------
1018 | C18
1019 | TVR1
2018 | C18
2021 | CAMION
3000 | E1
3001 | E2
3002 | E3
3009 | TCR1
3010 | TCR2
3011 | NETT
3012 | EM
4004 | B2D5
4005 | B2D6
4006 | B2D7
4014 | B2D15
4019 | P306B
然后我查询这个:SELECT * FROM WORK WHERE Id=1
我想要这个:
1 | TVR1 | TCR1 | B2D15 | E2 | B2D6 | P306B | B2D7 | CAMION |(NULL)|(NULL)
毫无疑问,我们必须使用一些 JOIN... 或者?
非常感谢您的帮助。提前致谢!
再见:)
虽然这可以使用 UNPIVOT
完成,然后是 LEFT JOIN
,然后是 PIVOT
,但更合适的解决方案是先规范化数据。
在经典关系数据库设计中,您的“WORK”table 将有 3 列:
- 唯一标识符(
id
)
- A "groupping key" (
group
)
- 数据(
item_id
)
然后您只需 JOIN
这个 table 和“EQUIPMENT” table,并在表示层中处理表示照顾 "un-pivoting".
我正在使用 SQL 服务器。 我想 "translate" 使用另一个 table.
所有返回值"WORK" table 看起来像这样:
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)
和转换 table "EQUIPEMENT" :
Id | Name
-------------
1018 | C18
1019 | TVR1
2018 | C18
2021 | CAMION
3000 | E1
3001 | E2
3002 | E3
3009 | TCR1
3010 | TCR2
3011 | NETT
3012 | EM
4004 | B2D5
4005 | B2D6
4006 | B2D7
4014 | B2D15
4019 | P306B
然后我查询这个:SELECT * FROM WORK WHERE Id=1
我想要这个:
1 | TVR1 | TCR1 | B2D15 | E2 | B2D6 | P306B | B2D7 | CAMION |(NULL)|(NULL)
毫无疑问,我们必须使用一些 JOIN... 或者? 非常感谢您的帮助。提前致谢!
再见:)
虽然这可以使用 UNPIVOT
完成,然后是 LEFT JOIN
,然后是 PIVOT
,但更合适的解决方案是先规范化数据。
在经典关系数据库设计中,您的“WORK”table 将有 3 列:
- 唯一标识符(
id
) - A "groupping key" (
group
) - 数据(
item_id
)
然后您只需 JOIN
这个 table 和“EQUIPMENT” table,并在表示层中处理表示照顾 "un-pivoting".