PostgreSQL常用字符串分割函数整理汇总


Posted in PostgreSQL onJuly 07, 2022

1. SPLIT_PART

SPLIT_PART() 函数通过指定分隔符分割字符串,并返回第N个子串。语法:

SPLIT_PART(string, delimiter, position)

  • string : 待分割的字符串
  • delimiter:指定分割字符串
  • position:返回第几个字串,从1开始,该参数必须是正数。如果参数值大于分割后字符串的数量,函数返回空串。

示例:

SELECT SPLIT_PART('A,B,C', ',', 2);  -- 返回B

下面我们利用该函数分割日期,获取年月日:

select split_part( current_date::text,'-',1) as year ,
       split_part( current_date::text,'-',2) as  month,
       split_part( current_date::text,'-',3) as day

返回信息:

year month day
2021 09 11

2.STRING_TO_ARRAY

该函数用于分割字符串至数组元素,请看语法:

string_to_array(string, delimiter [, null string])

  • string : 待分割的字符串
  • delimiter:指定分割字符串
  • null string : 设定空串的字符串

举例:

SELECT string_to_array('xx~^~yy~^~zz', '~^~');       -- {xx,yy,zz}
SELECT string_to_array('xx~^~yy~^~zz', '~^~', 'yy'); -- {xx,,zz}

我们也可以利用unnest函数返回表:

SELECT t as name
FROM unnest(string_to_array('john,smith,jones', ',')) AS t;
name
john
smith
jones

3. regexp_split_to_array

使用正则表达式分割字符串,请看语法:

regexp_split_to_array ( string text, pattern text [, flags text ] ) → text[]

请看示例:

postgres=# SELECT regexp_split_to_array('foo  bar baz', '\s+');
 regexp_split_to_array 
-----------------------
 {foo,bar,baz}
(1 row)

当然也有对应可以返回table的函数:

SELECT t as item
FROM regexp_split_to_table('foo    bar,baz', E'[\\s,]+') AS t;

返回结果:

item
foo
bar
baz

4.regexp_split_to_array

select regexp_split_to_array('the,quick,brown;fox;jumps', '[,;]') AS subelements
-- 返回 {the,quick,brown,fox,jumps}

于上面一样,只是返回数组类型。

5. regexp_matches

该函数返回匹配模式的字符串数组。如果需要返回所有匹配的集合,则需要的三个参数‘g’ (g 是 global 意思)。请看示例:

select regexp_matches('hello how are you', 'h[a-z]*', 'g')  
 as words_starting_with_h

返回结果:

words_starting_with_h
{hello}
{how}

如果忽略 ‘g’ 参数,则仅返回第一项。

当然我们也可以使用regexp_replace函数进行替换:

select regexp_replace('yellow submarine', 'y[a-z]*w','blue');
-- 返回结果:blue submarine

总结

到此这篇关于PostgreSQL常用字符串分割函数的文章就介绍到这了,更多相关pgsql字符串分割函数内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

PostgreSQL 相关文章推荐
PostgreSQL存储过程实用脚本(二):创建函数入门
Apr 05 PostgreSQL
Centos环境下Postgresql 安装配置及环境变量配置技巧
May 18 PostgreSQL
通过Qt连接OpenGauss数据库的详细教程
Jun 23 PostgreSQL
浅谈PostgreSQL表分区的三种方式
Jun 29 PostgreSQL
PostgreSQL解析URL的方法
Aug 02 PostgreSQL
关于PostgreSQL JSONB的匹配和交集问题
Sep 14 PostgreSQL
PostgreSQL13基于流复制搭建后备服务器的方法
Jan 18 PostgreSQL
PostGIS的安装与入门使用指南
Jan 18 PostgreSQL
PostgreSQL 插入INSERT、删除DELETE、更新UPDATE、事务transaction
Apr 12 PostgreSQL
PostgreSQL基于pgrouting的路径规划处理方法
Apr 18 PostgreSQL
PostgreSQL之连接失败的问题及解决
May 08 PostgreSQL
PostgreSQL怎么创建分区表详解
Jun 25 #PostgreSQL
PostgreSQL出现死锁该如何解决
PostgreSQL基于pgrouting的路径规划处理方法
Apr 18 #PostgreSQL
postgreSQL数据库基础知识介绍
PostgreSQL数据库去除重复数据和运算符的基本查询操作
PostgreSQL聚合函数介绍以及分组和排序
PostgreSQL 插入INSERT、删除DELETE、更新UPDATE、事务transaction
You might like
PHP调用Webservice实例代码
2011/07/29 PHP
浅析php设计模式之数据对象映射模式
2016/03/03 PHP
php array_slice 取出数组中的一段序列实例
2016/11/04 PHP
PHP实现正则表达式分组捕获操作示例
2018/02/03 PHP
Laravel配合jwt使用的方法实例
2020/10/25 PHP
javascript+dom树型菜单类,希望朋友们一起进步
2007/05/03 Javascript
Javascript 入门基础学习
2010/03/10 Javascript
基于jquery的模态div层弹出效果
2010/08/21 Javascript
jquery ui resizable bug解决方法
2010/10/26 Javascript
js检测网络是否具体连接功能的代码
2014/05/23 Javascript
javascript实现修改微信分享的标题内容等
2014/12/11 Javascript
jquery实现鼠标滑过显示提示框的方法
2015/02/05 Javascript
日常收集整理的JavaScript常用函数方法
2015/12/10 Javascript
jQuery实现CheckBox全选、全不选功能
2017/01/11 Javascript
Vue实例简单方法介绍
2017/01/20 Javascript
JavaScript脚本语言是什么_动力节点Java学院整理
2017/06/26 Javascript
详解vue路由
2020/08/05 Javascript
Python如何实现文本转语音
2016/08/08 Python
Python增量循环删除MySQL表数据的方法
2016/09/23 Python
Python实现基于多线程、多用户的FTP服务器与客户端功能完整实例
2017/08/18 Python
python删除服务器文件代码示例
2018/02/09 Python
基于python3的socket聊天编程
2020/02/17 Python
在python tkinter界面中添加按钮的实例
2020/03/04 Python
python中yield的用法详解
2021/01/13 Python
css3气泡 css3关键帧动画创建的动态通知气泡
2013/02/26 HTML / CSS
时装界的“朋克之母”:Vivienne Westwood
2017/07/06 全球购物
CAT鞋美国官网:CAT Footwear
2017/11/27 全球购物
开放系统互连参考模型
2016/06/29 面试题
运动会入场式解说词
2014/02/18 职场文书
百日安全活动总结
2014/05/04 职场文书
广播体操比赛口号
2014/06/10 职场文书
艺术设计专业毕业生推荐信
2014/07/08 职场文书
秋季校运会广播稿100字
2014/09/18 职场文书
高中社区服务活动报告
2015/02/05 职场文书
pycharm debug 断点调试心得分享
2021/04/16 Python
详解Vue项目的打包方式(生成dist文件)
2022/01/18 Vue.js