将CSV转换为此表格式时的ETL Pentaho建议(或SQL建议)

将CSV转换为此表格式时的ETL Pentaho建议(或SQL建议),sql,etl,pentaho,data-integration,Sql,Etl,Pentaho,Data Integration,我有一个CSV要转换。将数据转换为我的模式有点问题。 我在结束表中有一个locationID,在CSV中,大约10列中有1或NULL(每个列都是不同的位置) 我的逻辑是:如果列(“locationThree”)==1,那么将locationID设置为5(例如) 我不知道如何在SQL中做到这一点,Pentaho中是否有用于此的工具,或者如何在SQL中做到这一点 例如 这样做可能吗?您可以尝试在SQL中组合and表达式。假设您使用的是SQL Server,下面类似的方法可能会奏效。我还没有验证它是否

我有一个CSV要转换。将数据转换为我的模式有点问题。 我在结束表中有一个locationID,在CSV中,大约10列中有1或NULL(每个列都是不同的位置)

我的逻辑是:如果列(“locationThree”)==1,那么将locationID设置为5(例如)

我不知道如何在SQL中做到这一点,Pentaho中是否有用于此的工具,或者如何在SQL中做到这一点

例如


这样做可能吗?

您可以尝试在SQL中组合and表达式。假设您使用的是SQL Server,下面类似的方法可能会奏效。我还没有验证它是否正确执行,因为我刚刚在浏览器中编写了它

INSERT INTO endTable(locationID)
SELECT COALESCE( CASE locationOne
                 WHEN 1 THEN 5
                 ELSE NULL
                 END,
                 CASE locationTwo
                 WHEN 1 THEN 6
                 ELSE NULL
                 END
                );

或者,您可能希望查看SQL Server 2005及以后版本中可用的语句。

如果我错了,请更正我的错误,这样locationID是相对于每个列的?
INSERT INTO endTable(locationID)
SELECT COALESCE( CASE locationOne
                 WHEN 1 THEN 5
                 ELSE NULL
                 END,
                 CASE locationTwo
                 WHEN 1 THEN 6
                 ELSE NULL
                 END
                );