【问题标题】:ETL Pentaho advice (or SQL advice) on convertin CSV into this table format将 CSV 转换为此表格式的 ETL Pentaho 建议(或 SQL 建议)
【发布时间】:2012-05-18 23:47:20
【问题描述】:

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

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

我不知道如何在 SQL 中执行此操作,Pentaho 中是否有用于此操作的工具,或者我如何在 SQL 中执行此操作?

E.G

INSERT INTO endTable(locationID)
SELECT * FROM grubbyCSVData
if(locationOne == "1")
 locationID = 5;
if(locationTwo == "1")
 locationID = 6;

这样的事情可能吗?

【问题讨论】:

  • 如果我错了,请纠正我,所以 locationID 是相对于每一列的?

标签: sql etl pentaho data-integration


【解决方案1】:

您可能想尝试在 SQL 中组合 COALESCECASE 表达式。假设您使用的是 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 及更高版本中可用的 PIVOT and UNPIVOT 语句。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多