首页 > 解决方案 > 按字段部分分组

问题描述

我在 PostgreSQL 表中有一个字段name,格式如下:

JOHN^DOE
BILLY^SMITH
FIRL^GREGOIRE
NOEL^JOHN

等等。格式为LASTNAME^FIRSTNAME. 该表具有ID, name, birthdate and sex字段。如何GROUP BY仅使用 FIRSTNAME 执行 SQL 语句?我已经尝试了几件事,我想regexp_match可能是这样,但我不知道如何为此任务编写正确的正则表达式。你能帮助我吗 ?

标签: sqlregexstringpostgresqlsplit

解决方案


我会推荐split_part()

group by split_part(mycol, '^', 1)

DB Fiddle 上的演示

麦考尔 | 拆分部分
:------------ | :---------
约翰^美国能源部 | 约翰      
比利^史密斯 | 比利     
菲尔^格雷戈尔 | FIRL      
诺尔^约翰 | 诺尔      

推荐阅读