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进行中文全文检索
May 27 PostgreSQL
PostgreSQL解析URL的方法
Aug 02 PostgreSQL
关于PostgreSQL JSONB的匹配和交集问题
Sep 14 PostgreSQL
基于PostgreSQL/openGauss 的分布式数据库解决方案
Dec 06 PostgreSQL
PostgreSQL13基于流复制搭建后备服务器的方法
Jan 18 PostgreSQL
PostGIS的安装与入门使用指南
Jan 18 PostgreSQL
PostgreSQL基于pgrouting的路径规划处理方法
Apr 18 PostgreSQL
PostgreSQL之连接失败的问题及解决
May 08 PostgreSQL
postgresql中如何执行sql文件
May 08 PostgreSQL
postgresql之greenplum字符串去重拼接方式
May 08 PostgreSQL
PostgreSQL怎么创建分区表详解
Jun 25 #PostgreSQL
PostgreSQL出现死锁该如何解决
PostgreSQL基于pgrouting的路径规划处理方法
Apr 18 #PostgreSQL
postgreSQL数据库基础知识介绍
PostgreSQL数据库去除重复数据和运算符的基本查询操作
PostgreSQL聚合函数介绍以及分组和排序
PostgreSQL 插入INSERT、删除DELETE、更新UPDATE、事务transaction
You might like
ThinkPHP中U方法的使用浅析
2014/06/13 PHP
PHP合并数组+号和array_merge的区别
2015/06/25 PHP
CI框架AR数据库操作常用函数总结
2016/11/21 PHP
javascript 得到变量类型的函数
2010/05/19 Javascript
Javascript实现仿WebQQ界面的“浮云”兼容 IE7以上版本及FF
2011/04/27 Javascript
给jqGrid数据行添加修改和删除操作链接(之一)
2011/11/04 Javascript
javascript数组快速打乱重排的方法
2014/01/02 Javascript
jquery单行文字向上滚动效果的实现代码
2014/09/05 Javascript
JavaScript插件化开发教程(六)
2015/02/01 Javascript
jQuery实现DIV层收缩展开的方法
2015/02/27 Javascript
基于JavaScript实现简单的随机抽奖小程序
2016/01/05 Javascript
js表单验证实例讲解
2016/03/31 Javascript
Bootstrap编写一个兼容主流浏览器的受众门户式风格页面
2016/07/01 Javascript
详解Angular 4.x NgIf 的用法
2017/05/22 Javascript
利用nvm管理多个版本的node.js与npm详解
2017/11/02 Javascript
vue双向数据绑定知识点总结
2018/04/18 Javascript
Vue 获取数组键名的方法
2018/06/21 Javascript
Nodejs实现爬虫抓取数据实例解析
2018/07/05 NodeJs
基于VUE实现判断设备是PC还是移动端
2020/07/03 Javascript
vue-model实现简易计算器
2020/08/17 Javascript
微信小程序实现加入购物车滑动轨迹
2020/11/18 Javascript
Python函数返回不定数量的值方法
2019/01/22 Python
TensorBoard 计算图的可视化实现
2020/02/15 Python
如何利用python发送邮件
2020/09/26 Python
巧用CSS3 border实现图片遮罩效果代码
2012/04/09 HTML / CSS
Solaris操作系统的线程机制
2015/07/28 面试题
你在项目中用到了xml技术的哪些方面?如何实现的?
2014/01/26 面试题
教师自我反思材料
2014/02/14 职场文书
航海技术专业毕业生推荐信
2014/07/09 职场文书
会计专业求职信
2014/08/10 职场文书
小学生运动会报道稿
2014/09/12 职场文书
房屋租赁合同解除协议书
2014/10/11 职场文书
2015年体育部工作总结
2015/04/02 职场文书
离婚民事起诉状
2015/08/03 职场文书
人事行政部各岗位职责说明书!
2019/07/15 职场文书
解决Navicat for Mysql连接报错1251的问题(连接失败)
2021/05/27 MySQL