考虑一下,我有table_A,比如:
table_A
+--------+--------+--------+-----+
| code_1 | code_2 | code_3 | qty |
+--------+--------+--------+-----+
| 0.5 | 0.6 | 0.2 | 3 |
+--------+--------+--------+-----+
| 0.8 | 1.2 | 3.2 | 4 |
+--------+--------+--------+-----+
| 3.0 | 2.2 | 0.4 | 7 |
+--------+--------+--------+-----+和一个reference_table,就像:
reference_table
+--------+--------+
| id | code |
+--------+--------+
| 1 | code_1 |
+--------+--------+
| 2 | code_2 |
+--------+--------+
| 3 | code_3 |
+--------+--------+现在,我想得到这样的输出:
output_table
+--------+--------+--------+
| id | value | qty |
+--------+--------+--------+
| 1 | 0.5 | 3 |
+--------+--------+--------+
| 2 | 0.6 | 3 |
+--------+--------+--------+
| 3 | 0.2 | 3 |
+--------+--------+--------+
| 1 | 0.8 | 4 |
+--------+--------+--------+
| 2 | 1.2 | 4 |
+--------+--------+--------+
| 3 | 3.2 | 4 |
+--------+--------+--------+
| 1 | 3.0 | 7 |
+--------+--------+--------+
| 2 | 2.2 | 7 |
+--------+--------+--------+
| 3 | 0.4 | 7 |
+--------+--------+--------+NB:-引用表在MySQL数据库中,table_A位于MSSQL数据库中。我使用宾得PDI从两个表(在不同的数据库中,通过“表输入”步骤)获取数据。
如何在output_table 中获得PDI - Spoon (ETL)
另外,在SQL中如何做到这一点(如果两个表位于同一个MSSQL数据库中)?
预先感谢 :)
发布于 2020-07-15 11:06:11
在Server中,可以使用横向连接--即关键字apply
select r.id, v.value, a.qty
from table_A a cross apply
(values ('code_1', a.code_1), ('code_2', a.code_2), ('code_3', a.code_3)
) v(code, value) join
reference r
on r.code = v.code;https://stackoverflow.com/questions/62912442
复制相似问题