首页 > 解决方案 > 将 Athena SQL 与正则表达式一起使用

问题描述

我正在使用 DbVisualizer 连接到 athena 实例。我有一个工作查询:

SELECT device, description, id, size, date FROM test.database WHERE month = '01'
and device not like '%link%'
and device not like '%Link%'
and device not like '%LINK%'
and id not like '%abc%'
and id not like '%Abc%'
and id not like '%ABC%'
group by device, description, id, size, date order by month desc 

我想做的是清理它并使用正则表达式捕获案例。我很确定 /link.*/ig并且/abc.*/ig会抓住案例更改它,但我不知道如何将其插入。我也无法开始"input.regex" =工作。

标签: sqlamazon-athena

解决方案


你可以REGEXP_LIKE在这里使用:

SELECT DISTINCT device, description, id, size, date
FROM test.database
WHERE
    month = '01' AND
    NOT REGEXP_LIKE(device, '[lL]ink|LINK') AND
    NOT REGEXP_LIKE(device, '[aA]bc|ABC')
ORDER BY
    month DESC;

请注意,您的GROUP BY逻辑也可以仅由我在上面选择的不同选择来表示。


推荐阅读