Athena 查询以固定长度匹配列数据中的字母数字字符
Athena Query to match Alpha numeric Character at a fixed length in a colum data
在 AWS Athena 中,当点'.'
.
之后的值为 A-Z
时,我应该如何编写查询来获取列值
列值列表为:
DT90411.A7
CT90411.23
CT90411.Q3
目前我无法获取点'.'
后有 A-Z
个字符的值
预期结果:
DT90411.A7
CT90411.Q3
这些在点'.'
之后有字符A-Z
Select Col_A from Table1 where Col_A like '%.[a-z]%'; is not giving the desired result
使用regexp_like.
演示:
with Table1 as(
SELECT * FROM (
VALUES
'DT90411.A7', 'CT90411.23' ,'CT90411.Q3'
) AS t (Col_A )
)
select Col_A
from Table1
where regexp_like(Col_A,'(i?)\.[A-Z]')
结果:
Col_A
DT90411.A7
CT90411.Q3
正则表达式 '(i?)\.[A-Z]'
表示:
(i?)
- 不区分大小写,删除它是你需要区分大小写的匹配
\.
- 点
[A-Z]
- 字符 class,字母 A 到 Z
在 AWS Athena 中,当点'.'
.
A-Z
时,我应该如何编写查询来获取列值
列值列表为:
DT90411.A7
CT90411.23
CT90411.Q3
目前我无法获取点'.'
A-Z
个字符的值
预期结果:
DT90411.A7
CT90411.Q3
这些在点'.'
A-Z
Select Col_A from Table1 where Col_A like '%.[a-z]%'; is not giving the desired result
使用regexp_like.
演示:
with Table1 as(
SELECT * FROM (
VALUES
'DT90411.A7', 'CT90411.23' ,'CT90411.Q3'
) AS t (Col_A )
)
select Col_A
from Table1
where regexp_like(Col_A,'(i?)\.[A-Z]')
结果:
Col_A
DT90411.A7
CT90411.Q3
正则表达式 '(i?)\.[A-Z]'
表示:
(i?)
- 不区分大小写,删除它是你需要区分大小写的匹配
\.
- 点
[A-Z]
- 字符 class,字母 A 到 Z