如何在VST的SSDT中创建此SSIS查找?

时间:2013-06-26 15:47:13

标签: sql ssis

我的数据源中有一个名为“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.

谢谢!

3 个答案:

答案 0 :(得分:2)

正如我在类似问题中提到的,SSIS (SQL Server 2008)

选项1

派生列但由于行长而会变得有点难看。

选项2

将源性别列映射到查找的

的查找转换
SELECT D.Gender, D.GenderId
FROM
(
    SELECT 'M', 1
    UNION ALL SELECT '1', 1
    UNION ALL SELECT 'F', 2
    --- etc
) D (Gender, GenderId);

选项3

将其修复在源查询中。如果您将这些数据从数据库中提取出来,请在那里使用CASE语句将GenderId的值强制转换为正确的内容,以便您可以简化包。

答案 1 :(得分:0)

使用Derived Column Transformation制作新的StandardsGender列。您可以使用立即if语句(?:syntax)来构建案例结构。派生列通常是处理此类转换和清理的最佳工具。

答案 2 :(得分:0)

如果数据源是SQL数据库,建议使用CASE语句在SQL查询中进行处理。您也应该看到一些性能优势。