PgSQL wm_concat与正则表达式结合

avatar
作者
筋斗云
阅读量:0

在 PostgreSQL 中,wm_concat 是一个聚合函数,用于将多行文本字段连接成一个逗号分隔的字符串

以下是一个使用 wm_concat 和正则表达式结合的示例:

WITH test_data AS (     SELECT * FROM (VALUES         ('John', 'Doe', 'john.doe@example.com'),         ('Jane', 'Doe', 'jane.doe@example.com'),         ('Alice', 'Smith', 'alice.smith@example.com')     ) AS t(first_name, last_name, email) ) SELECT     first_name,     last_name,     string_agg(email, ', ') AS emails FROM     test_data WHERE     email ~* '^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$' GROUP BY     first_name,     last_name; 

在这个示例中,我们首先创建了一个名为 test_data 的临时表,其中包含了一些用户的名字、姓氏和电子邮件地址。然后,我们使用 WHERE 子句过滤出符合电子邮件格式的行。最后,我们使用 string_agg 函数将每个用户的电子邮件地址连接成一个逗号分隔的字符串。

请注意,~* 是一个正则表达式匹配操作符,用于执行不区分大小写的匹配。在这个示例中,我们使用了一个简单的电子邮件正则表达式来过滤出有效的电子邮件地址。你可以根据需要修改正则表达式以满足你的需求。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!