不用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 )
就比如我要从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;
输出结果: