我一直在提取字符串,直到最后一次出现字符。在 SQl 中,我曾经使用
instr
来查找字符的最后一个位置,然后使用 substr
来获取从 0 到最后一个位置的字符串。我只是想在 Athena 中复制同样的东西。
ABC-CAD-DAB
ABC-CAD
您可以使用:
regexp_extract(column, '(.*)-', 1)
这会在
-
之前进行贪婪的正则表达式搜索尽可能多的字符,然后返回这些字符。
示例:
with foo as (
select 'ABC-CAD-DAB' as input
)
select regexp_extract(input, '(.*)-', 1)
from foo
这给出了输出:
ABC-CAD
Athena 使用 Presto,因此请参阅文档:正则表达式函数 — Presto 文档