如何从SQL select返回匹配的正则表达式?我try 使用REGEXP_EXTRACT,但运气不佳(功能不可用).我所做的是:

SELECT column ~ '^stuff.*$'
FROM table;

但这给了我一个正确/错误的列表.我想知道每种情况下提取的是什么.

推荐答案

如果您试图捕获由表达式生成的正则表达式匹配,那么substring将起到以下作用:

select substring ('I have a dog', 'd[aeiou]g')

将返回任何匹配项,在本例中为"狗"

我认为你在上面try 的缺失环节是,你需要把你想要捕捉的表达式放在括号里.regexp_matches在这种情况下可以使用(如果在想要捕获的表达式周围包含括号),但每次匹配都会返回一个文本array.如果是一个匹配,substring就有点方便了.

回到你的例子,如果你试图返回stuff,当且仅当它在一列的开头:

select substring (column, '^(stuff)')

select (regexp_matches (column, '^(stuff)'))[1]

Postgresql相关问答推荐

如何将Postgs SUM结果存储在多个变量中?

PostgreSQL数据文件是否仅在判断点期间写入磁盘?

无法使用PGx连接到Postgres数据库AWS RDS

在 postgres/presto/AWS-Athena 中,与 array_agg( (col1, col2) ) 相反的是什么来获得每组多行?

Postgres 查询指向国外数据工作者的分区表比直接查询 fdw 慢很多倍

在 PostgreSQL 中提高 GROUP BY ... HAVING COUNT(...) > 1 的性能

如何计算过滤器中的百分比

函数将多列作为单列而不是多列返回

是否可以使用 pgAdmin4 自动格式化/美化 SQL 查询?

PG::UndefinedTable:错误:relation "active_storage_blobs" does not exist

PostgreSQL - 改变数字的精度?

如何在容器内创建 postgres 扩展?

从 Postgres 数据库中删除所有函数

是否有为 SQL Server 生成完整数据库 DDL 的工具? Postgres 和 MySQL 呢?

SQL - 提示引用列

在 postgresql 中,如何在 jsonb 键上返回布尔值而不是字符串?

如何将主键添加到视图?

POSTGRESQL 中的 CHARINDEX (SQL SERVER) 相似函数是什么?

带有偏移限制的 Select 查询太慢了

如何将 CSV 数据插入 PostgreSQL 数据库(远程数据库)