如何在 Athena 中提取字符串直到最后一次出现?

问题描述 投票:0回答:1

我一直在提取字符串,直到最后一次出现字符。在 SQl 中,我曾经使用

instr
来查找字符的最后一个位置,然后使用
substr
来获取从 0 到最后一个位置的字符串。我只是想在 Athena 中复制同样的东西。

  • 输入:
    ABC-CAD-DAB
  • 输出:
    ABC-CAD
amazon-web-services amazon-athena
1个回答
0
投票

您可以使用:

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 文档

© www.soinside.com 2019 - 2024. All rights reserved.