PostgreSQL修剪前导和尾随字符:=和“

时间:2016-08-17 13:55:16

标签: postgresql csv talend data-integration

我正在努力构建一个使用引用的CSV文件的导入工具。但是,CSV文件中的几个字段报告如下:

“=”“38000”“”

38000 是我需要的数据。我使用的数据集成软件(Talend 6.11)已经为我删除了前导和尾随双引号(因此,“38000”变为38000),但我找不到摆脱其他人的方法。

所以,基本上,我需要“=”“38000”“”成为“38000”,其中删除前导“=”并删除尾随“”。

是否有可以为我完成此操作的TRIM功能?也许Talend中有一种方法可以做到这一点吗?

2 个答案:

答案 0 :(得分:1)

正如其他答案所述,您可以在SQL中执行该操作。或者,你可以在Talend中的Java,Groovy等中完成它。但是,如果存在执行该作业的现有Talend组件,我的偏好是使用它。这导致更快的开发,可能更少的测试和更容易的维护。话虽如此,重要的是要检查所有可用的组件,以便了解您可以使用的组件。

您可以使用Talend组件tReplace来检查要修剪引号和等号的每个输入列。单个tReplace组件可以在多个输入列上执行搜索和替换操作。如果所有替换相互关联,我会将它们保存在单个tReplace中。当它到达不相关的替换时,我可以将它们放在一个新的tReplace中,以便逻辑操作被组织并组合在一起。

tReplace 
 For a given Input Column 
   search for "=", replace with ""
   search for "\"", replace with ""

答案 1 :(得分:0)

类似的东西:

SELECT format( '"%s"', trim( both '"=' from '"=""38000"""' ) );

-[ RECORD 1 ]---
format | "38000"

1st:trim()函数删除所有"和=字符。结果简直就是38000
第二:使用格式可以添加双引号以获得如意的最终结果

或者,可以使用regexp和其他Postgres字符串函数。

查看更多: https://www.postgresql.org/docs/current/static/functions-string.html