pgsql正则表达式匹配数字问题

不用where条件的条件下怎么用pgsql匹配出小于110的数字

你原始数据长什么样?能不能举个例子?


select string_agg(case when a <110 then a end,'、') from 
(select (regexp_matches('10、35、20、110、200、500','\d+','g'))[1] a )

img

就比如我要从10、35、20、110、200、500等数字中用正则表达式匹配出小于110的数字,在不用where的情况下

1、小于110的情况:1位及2位长数字、3位长时以10开始,SQL如下:

    WITH t AS (
        SELECT 10 col UNION ALL
        SELECT 35 UNION ALL
        SELECT 20 UNION ALL
        SELECT 110 UNION ALL
        SELECT 200 UNION ALL
        SELECT 500 UNION ALL
        SELECT 108 UNION ALL
        SELECT 5 )
    SELECT col, ( regexp_match( col || '', '^\d{1}$|^\d{2}$|^10\d$' ) )[ 1 ] FROM t;

输出结果:

img