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 相关文章推荐
Centos环境下Postgresql 安装配置及环境变量配置技巧
May 18 PostgreSQL
如何使用PostgreSQL进行中文全文检索
May 27 PostgreSQL
postgresql无序uuid性能测试及对数据库的影响
Jun 11 PostgreSQL
postgres之jsonb属性的使用操作
Jun 23 PostgreSQL
PostgreSQL解析URL的方法
Aug 02 PostgreSQL
关于PostgreSQL JSONB的匹配和交集问题
Sep 14 PostgreSQL
Oracle配置dblink访问PostgreSQL的操作方法
Mar 21 PostgreSQL
PostgreSQL出现死锁该如何解决
May 30 PostgreSQL
PostgreSQL怎么创建分区表详解
Jun 25 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
超级好用的一个php上传图片类(随机名,缩略图,加水印)
2010/06/30 PHP
基于php设计模式中工厂模式详细介绍
2013/05/15 PHP
php自定义时间转换函数示例
2016/12/07 PHP
thinkphp5.1 文件引入路径问题及注意事项
2018/06/13 PHP
PHP常用正则表达式精选(推荐)
2019/05/28 PHP
php数组指针函数功能及用法示例
2020/02/11 PHP
列表内容的选择
2006/06/30 Javascript
科讯商业版中用到的ajax空间与分页函数
2007/09/02 Javascript
javascript date格式化示例
2013/09/25 Javascript
js自定义鼠标右键的实现原理及源码
2014/06/23 Javascript
javascript十六进制及二进制转化的方法
2015/05/06 Javascript
基于jquery实现页面滚动到底自动加载数据的功能
2015/12/19 Javascript
jQuery向父辈遍历的简单方法
2016/09/18 Javascript
Bootstrap基本插件学习笔记之折叠(22)
2016/12/08 Javascript
JavaScript严格模式详解
2017/01/16 Javascript
JS实现基于Sketch.js模拟成群游动的蝌蚪运动动画效果【附demo源码下载】
2017/08/18 Javascript
从parcel.js打包出错到选择nvm的全部过程
2018/01/23 Javascript
echarts同一页面中四个图表切换的js数据交互方法示例
2018/07/03 Javascript
一次Webpack配置文件的分离实战记录
2018/11/30 Javascript
vuejs+element UI table表格中实现禁用部分复选框的方法
2019/09/20 Javascript
JavaScript arguments.callee作用及替换方案详解
2020/09/02 Javascript
Centos Python2 升级到Python3的简单实现
2016/06/21 Python
Python实现基本数据结构中队列的操作方法示例
2017/12/04 Python
Python基于Flask框架配置依赖包信息的项目迁移部署
2018/03/02 Python
tensorflow获取变量维度信息
2018/03/10 Python
在VS2017中用C#调用python脚本的实现
2019/07/31 Python
简单了解python中的f.b.u.r函数
2019/11/02 Python
Python MySQLdb 执行sql语句时的参数传递方式
2020/03/04 Python
如何打包Python Web项目实现免安装一键启动的方法
2020/05/21 Python
matplotlib 范围选区(SpanSelector)的使用
2021/02/24 Python
世界上最大的巴士旅游观光公司:Big Bus Tours
2016/10/20 全球购物
英国珠宝钟表和家居礼品精品店:David Shuttle
2018/02/24 全球购物
.net工程师笔试题
2012/06/09 面试题
求职信范文怎么写
2014/01/29 职场文书
竞选副班长演讲稿
2014/04/24 职场文书
二年级上册数学教学计划
2015/01/20 职场文书