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
PostgreSQL通过oracle_fdw访问Oracle数据的实现步骤
May 21 PostgreSQL
postgresql无序uuid性能测试及对数据库的影响
Jun 11 PostgreSQL
postgresql 删除重复数据案例详解
Aug 02 PostgreSQL
关于PostgreSQL JSONB的匹配和交集问题
Sep 14 PostgreSQL
PostgreSQL13基于流复制搭建后备服务器的方法
Jan 18 PostgreSQL
PostGIS的安装与入门使用指南
Jan 18 PostgreSQL
使用PostGIS完成两点间的河流轨迹及流经长度的计算(推荐)
Jan 18 PostgreSQL
Oracle配置dblink访问PostgreSQL的操作方法
Mar 21 PostgreSQL
PostgreSQL常用字符串分割函数整理汇总
Jul 07 PostgreSQL
PostgreSQL怎么创建分区表详解
Jun 25 #PostgreSQL
PostgreSQL出现死锁该如何解决
PostgreSQL基于pgrouting的路径规划处理方法
Apr 18 #PostgreSQL
postgreSQL数据库基础知识介绍
PostgreSQL数据库去除重复数据和运算符的基本查询操作
PostgreSQL聚合函数介绍以及分组和排序
PostgreSQL 插入INSERT、删除DELETE、更新UPDATE、事务transaction
You might like
第六节--访问属性和方法
2006/11/16 PHP
PHP在不同页面间传递Json数据示例代码
2013/06/08 PHP
ThinkPHP实现二级循环读取的方法
2014/11/03 PHP
PHP SPL标准库之SplFixedArray使用实例
2015/05/12 PHP
PHP实现微信退款功能
2018/10/02 PHP
java解析json方法总结
2019/05/16 PHP
Javascript 不能释放内存.
2006/09/07 Javascript
比较简单实用的使用正则三种版本的js去空格处理方法
2007/11/18 Javascript
javascript 定义新对象方法
2010/02/20 Javascript
Javascript中this关键字的一些小知识
2015/03/15 Javascript
javascript中的正则表达式使用详解
2015/08/30 Javascript
nodejs 中模拟实现 emmiter 自定义事件
2016/02/22 NodeJs
Function.prototype.apply()与Function.prototype.call()小结
2016/04/27 Javascript
jQuery 跨域访问解决原理案例详解
2016/07/09 Javascript
jQuery中select与datalist制作下拉菜单时的区别浅析
2016/12/30 Javascript
jQuery ajax的功能实现方法详解
2017/01/06 Javascript
JS检测是否可以访问公网服务器功能代码
2017/06/19 Javascript
浅谈在fetch方法中添加header后遇到的预检请求问题
2017/08/31 Javascript
vue学习之mintui picker选择器实现省市二级联动示例
2017/10/12 Javascript
vue树形结构获取键值的方法示例
2018/06/21 Javascript
Vue CLI 3.x 自动部署项目至服务器的方法
2019/04/02 Javascript
vue cli3适配所有端方案的实现
2020/04/13 Javascript
浅谈Python 字符串格式化输出(format/printf)
2016/07/21 Python
python3实现爬取淘宝美食代码分享
2018/09/23 Python
python实现基于信息增益的决策树归纳
2018/12/18 Python
Python3中lambda表达式与函数式编程讲解
2019/01/14 Python
python利用os模块编写文件复制功能——copy()函数用法
2020/07/13 Python
销售员自我评价怎么写
2013/09/19 职场文书
中层干部岗位职责
2013/12/18 职场文书
警察思想汇报
2014/01/04 职场文书
暑期教师培训方案
2014/06/07 职场文书
在校大学生自我评价范文
2014/09/12 职场文书
学校运动会广播稿范文
2014/10/02 职场文书
商务代表岗位职责
2015/02/15 职场文书
《红领巾真好》教学反思
2016/02/16 职场文书
mysql优化
2021/04/06 MySQL