我正试图从大查询中MOB_
之后的最后一个下划线之后的字符串列表中提取所有内容。
参见以下示例:
字符串:
Topshop_AW19_Pro_MOB_competitors(mid price point)custom_affinity
所需输出:
competitors(mid price point)custom_affinity
这里有一个可能的解决方案:
SELECT SUBSTRING(your_field, LOCATE('MOB_',your_field)+4)
FROM your_table;
或使用regexp
SELECT REGEXP_SUBSTR(your_field,'(?<=MOB_).*$')
FROM your_table
使用oracle:编辑
SELECT substr(regexp_substr(your_field,'MOB_(.*)'),5) "result" FROM your_table;
如果您不想使用substrhttp://sqlfiddle.com/#!2021年4月20日:
SELECT regexp_substr(your_field,'MOB_(.*)', 1, 1, NULL, 1) "result" FROM your_table;
使用oracle编辑2:在此处查看更多示例http://sqlfiddle.com/#!2021年4月31日一个带有regexp_replace,另一个带有instr(=在oracle中查找(。
这似乎很直接:
RIGHT(stuff, RIGHT_FIND(stuff, 'MOB_'))
有趣的是,文档似乎有一些错误:
https://cloud.google.com/dataprep/docs/html/RIGHT-Function_57344732
https://cloud.google.com/dataprep/docs/html/RIGHTFIND-Function_118228807