【发布时间】:2018-03-19 23:53:13
【问题描述】:
帮助!我对正则表达式一无所知,但我需要在我的 sql 查询(amazon redshift)中使用它。我有这样的列表:[1245,2324,4433] 我想获得第一个数字(1245)。我该怎么做?
问候
【问题讨论】:
-
试试
regexp(col, '\\d+')
标签: sql regex amazon-redshift
帮助!我对正则表达式一无所知,但我需要在我的 sql 查询(amazon redshift)中使用它。我有这样的列表:[1245,2324,4433] 我想获得第一个数字(1245)。我该怎么做?
问候
【问题讨论】:
regexp(col, '\\d+')
标签: sql regex amazon-redshift
select (regexp_matches('[1245,2324,4433]', '\d+'))[1]
说明:regexp_matches 从字符串中选择第一个数字 (\d+),然后从返回的集合中选择第一个(也是唯一的)元素。
如果在所有 0 行中都找不到数字。
对于 RDS 来说
regexp_substr('[12456,232466,4433]','\\d+')
参考资料:
【讨论】:
regexp_substr 而不是docs.aws.amazon.com/redshift/latest/dg/REGEXP_SUBSTR.html
\\d+ 正则表达式
你可以试试这个:
select replace(split_part('[1245,2324,4433]',',',1),'[','')
【讨论】: