如何使用平面文件源 B 中定义的映射修改平面文件源 A 中的一列
How to modify one column from flat file source A with mapping defined in flat file source B
我有包含 2 列的平面文件源 A
Col1 Col2
ada 1
das 2
2312 1
和第二个平面文件源 B,带有 Col1 的映射(将颜色 ID 转换为颜色名称)
Col1 Col2
1 Red
2 Green
3 Blue
我已将这两个文件加载到平面文件源中。我想知道如何用源 B 中的颜色名称替换源 A 中的 ID?预期的解决方案是:
Col1 Col2
ada Red
das Green
2312 REd
有什么快速解决办法吗?
从 Flat file source
将其设置为加载到数据库中适当的 table 作为目标。假设您创建了两个 tables tbl1
和 tbl2
:
您现在可以加入这两个 table,在下一步(DFT
或 EXEX SQL Task
或任何地方),您可以看到所需的列作为输出:
SELECT tbl1.col1 AS [Name],
tbl2.col2 AS [Color]
FROM tbl1
JOIN tbl2
ON tbl1.col2 = tbl2.col1
如果您不想分两步完成,您可以使用 Merge Task
并像上面那样加入两个。请参考下图(在您的情况下,两个源都是平面文件源,但在左侧使用与 tbl1 的左连接,因为如果颜色代码不可用,我们不想丢失该数据):
您可以在您的 SSIS 包中使用 'Merge Join' 选项,您可以根据您的要求选择 Left/Right 加入。
我有包含 2 列的平面文件源 A
Col1 Col2
ada 1
das 2
2312 1
和第二个平面文件源 B,带有 Col1 的映射(将颜色 ID 转换为颜色名称)
Col1 Col2
1 Red
2 Green
3 Blue
我已将这两个文件加载到平面文件源中。我想知道如何用源 B 中的颜色名称替换源 A 中的 ID?预期的解决方案是:
Col1 Col2
ada Red
das Green
2312 REd
有什么快速解决办法吗?
从 Flat file source
将其设置为加载到数据库中适当的 table 作为目标。假设您创建了两个 tables tbl1
和 tbl2
:
您现在可以加入这两个 table,在下一步(DFT
或 EXEX SQL Task
或任何地方),您可以看到所需的列作为输出:
SELECT tbl1.col1 AS [Name],
tbl2.col2 AS [Color]
FROM tbl1
JOIN tbl2
ON tbl1.col2 = tbl2.col1
如果您不想分两步完成,您可以使用 Merge Task
并像上面那样加入两个。请参考下图(在您的情况下,两个源都是平面文件源,但在左侧使用与 tbl1 的左连接,因为如果颜色代码不可用,我们不想丢失该数据):
您可以在您的 SSIS 包中使用 'Merge Join' 选项,您可以根据您的要求选择 Left/Right 加入。