如何在Teradata select语句中替换多个字符串

时间:2019-04-22 14:52:54

标签: sql teradata

我需要从表中进行选择,但要删除各种字符串。 假设我表中的条目是:

DataMart1:Here is some data and other valuable data
HouseWareMart Other data possibly junk data
DataLake3 there is nothing here

我想删除各种字符串:     “有价值的数据”     “其他数据”     “什么都没有”

所以我会得到:

DataMart1:Here is some data and other
HouseWareMart possibly junk data
DataLake3 here

我曾考虑过嵌套OREPLACE,但语法不正确,搜索“嵌套的OREPLACE”返回的内容无济于事。

有什么建议吗?

2 个答案:

答案 0 :(得分:4)

嵌套替换的语法:

select oreplace(oreplace(oreplace(col, 'Valuable data', ''), 'Other data ', ''), 'there is nothing ', '')

答案 1 :(得分:3)

警告:CGRect区分大小写(oReplace不匹配'Valuable data'),并且在删除第一个字符后可能会找到第二个字符,例如'valuable data'首先从其余字符串中删除'DataLake3 there is valuable data nothing date',然后再删除valuable data

一种用于删除多个字符串的简单方法是使用there is nothing(区分大小写)

regexp_replace

或不区分大小写

RegExp_Replace(col, 'valuable data|other data|there is nothing')