select regexp_substr((select sst.param_value from 表 sst where sst.param_item='usern_no','[^,]+',1,rownum) from dual connect by rownum <![CDATA[<=]]>length((select sst.param_value from 表 sst where sst,param_item='user_no'))-length(repalce((select sst.param_value from 表 sst where sst.param_item='user_no'),','))+1 改为pgsql语法
时间: 2024-01-28 07:04:19 浏览: 124
Oracle正则表达式使用介绍
在 PostgreSQL 中,可以使用正则表达式函数 `regexp_matches` 或 `regexp_split_to_array` 来达到类似的效果。以下是使用 `regexp_matches` 函数的示例:
```
SELECT regexp_matches(param_value, '[^,]+', 'g')
FROM 表
WHERE param_item = 'usern_no';
```
其中,`'[^,]+'` 表示匹配不包含逗号的任意字符序列,`'g'` 表示全局匹配。如果要返回匹配的第一个结果,可以使用以下语句:
```
SELECT regexp_matches(param_value, '[^,]+')[1]
FROM 表
WHERE param_item = 'usern_no';
```
注意,PostgreSQL 中没有类似 Oracle 的 `dual` 表,可以使用 `SELECT` 语句中的 `FROM` 子句来代替。
阅读全文