我的数据源中有一个名为“Gender”的列。目前,该列包含六个可能值中的一个。我想创建一个转换,它从源获取值并将其转换为四个标准化值之一。我该怎么做?
到目前为止,我将查找转换添加到设计器表面并检查了选项。我想我可以用一个简单的SQL查询来完成这个,下面是psuedocode,但我不确定我需要做什么或怎么做。
If Gender = M or Gender = 1 then GenderId = 1
If Gender = F or Gender = 2 then GenderId = 2
If Gender = U then GenderId = 3
If Gender = X then GenderId = 4
... etc.
谢谢!
答案 0 :(得分:2)
正如我在类似问题中提到的,SSIS (SQL Server 2008)
派生列但由于行长而会变得有点难看。
将源性别列映射到查找的
的查找转换SELECT D.Gender, D.GenderId
FROM
(
SELECT 'M', 1
UNION ALL SELECT '1', 1
UNION ALL SELECT 'F', 2
--- etc
) D (Gender, GenderId);
将其修复在源查询中。如果您将这些数据从数据库中提取出来,请在那里使用CASE语句将GenderId的值强制转换为正确的内容,以便您可以简化包。
答案 1 :(得分:0)
使用Derived Column Transformation制作新的StandardsGender列。您可以使用立即if语句(?:syntax)来构建案例结构。派生列通常是处理此类转换和清理的最佳工具。
答案 2 :(得分:0)
如果数据源是SQL数据库,建议使用CASE语句在SQL查询中进行处理。您也应该看到一些性能优势。