提取具有多个条件的字符串-sql

时间:2019-01-29 22:37:22

标签: postgresql amazon-redshift

我们有一列可变的字符串值,如下所示。如何在Redshift中提取字符串的一部分并返回所需的结果?

示例

  1. 删除最后一个以下划线和数字(_1_MN,数字可以为1-1000)开头的部分
  2. 删除主要部分(Ed _)
  3. 用空格替换所有剩余的下划线

字符串: Ed_Westside工业园区94_威廉姆斯小学_1_MN

所需结果: Westside Ind学区94 Williams小学

2 个答案:

答案 0 :(得分:-1)

MySQL

UPDATE products 
SET col = SUBSTRING(col FROM 3)
WHERE col LIKE ('Ed_%')

UPDATE products 
SET col = SUBSTRING(col FROM -5 )
WHERE col LIKE ('%_1_MN')

UPDATE products 
SET col = REPLACE(col, '_', ' ')

答案 1 :(得分:-1)

虽然不是很优雅,但还是可行的。

REGEXP_REPLACE(LEFT(RIGHT(name, LEN(name) - 3), LEN(name) -8) , '_', ' ')