繁体   English   中英

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

[英]ETL Pentaho advice (or SQL advice) on convertin CSV into this table format

我有一个要转换的CSV。 将数据转换为我的模式有点麻烦。 我的茶几中有一个locationID,而在CSV中,大约10列中有1或NULL(每个是一个不同的位置)。

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

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

例如

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

这样有可能吗?

您可能想尝试在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及更高版本中可用的PIVOTUNPIVOT语句。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM