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
通过Qt连接OpenGauss数据库的详细教程
Jun 23 PostgreSQL
基于PostgreSQL/openGauss 的分布式数据库解决方案
Dec 06 PostgreSQL
Rust 连接 PostgreSQL 数据库的详细过程
Jan 22 PostgreSQL
PostgreSQL并行计算算法及参数强制并行度设置方法
Apr 06 PostgreSQL
PostgreSQL数据库创建并使用视图以及子查询
Apr 11 PostgreSQL
PostgreSQL数据库去除重复数据和运算符的基本查询操作
Apr 12 PostgreSQL
postgreSQL数据库基础知识介绍
Apr 12 PostgreSQL
PostgreSQL基于pgrouting的路径规划处理方法
Apr 18 PostgreSQL
PostgreSQL出现死锁该如何解决
May 30 PostgreSQL
PostgreSQL怎么创建分区表详解
Jun 25 PostgreSQL
PostgreSQL怎么创建分区表详解
Jun 25 #PostgreSQL
PostgreSQL出现死锁该如何解决
PostgreSQL基于pgrouting的路径规划处理方法
Apr 18 #PostgreSQL
postgreSQL数据库基础知识介绍
PostgreSQL数据库去除重复数据和运算符的基本查询操作
PostgreSQL聚合函数介绍以及分组和排序
PostgreSQL 插入INSERT、删除DELETE、更新UPDATE、事务transaction
You might like
PHP的fsockopen、pfsockopen函数被主机商禁用的解决办法
2014/07/08 PHP
PHP调试函数和日志记录函数分享
2015/01/31 PHP
PHP中捕获超时事件的方法实例
2015/02/12 PHP
php判断一个数组是否为有序的方法
2015/03/27 PHP
PHP生成器简单实例
2015/05/13 PHP
PHP如何实现Unicode和Utf-8编码相互转换
2015/07/29 PHP
PHP微信红包生成代码分享
2016/10/06 PHP
PHP创建文件及写入数据(覆盖写入,追加写入)的方法详解
2019/02/15 PHP
PHP常见字符串操作函数与用法总结
2019/03/04 PHP
Laravel5.0+框架邮件发送功能实现方法图文与实例详解
2019/04/23 PHP
JS去除字符串的空格增强版(可以去除中间的空格)
2009/08/26 Javascript
jValidate 基于jQuery的表单验证插件
2009/12/12 Javascript
jquery垂直公告滚动实现代码
2013/12/08 Javascript
在Firefox下js select标签点击无法弹出
2014/03/06 Javascript
解决Jquery向页面append新元素之后事件的绑定问题
2015/03/16 Javascript
JS控制弹出悬浮窗口(一览画面)的实例代码
2016/05/30 Javascript
关于js原型的面试题讲解
2016/09/25 Javascript
JS 实现Base64编码与解码实例详解
2016/11/07 Javascript
原生JS实现幻灯片
2017/02/22 Javascript
设置cookie指定时间失效(实例代码)
2017/05/28 Javascript
浅谈JS中的反柯里化( uncurrying)
2017/08/17 Javascript
解决Vue 浏览器后退无法触发beforeRouteLeave的问题
2017/12/24 Javascript
vue router 传参获取不到的解决方式
2019/11/13 Javascript
python和C语言混合编程实例
2014/06/04 Python
Flask入门教程实例:搭建一个静态博客
2015/03/27 Python
python实现批量监控网站
2016/09/09 Python
Django中redis的使用方法(包括安装、配置、启动)
2018/02/21 Python
python实现本地图片转存并重命名的示例代码
2018/10/27 Python
Python3匿名函数lambda介绍与使用示例
2019/05/18 Python
PyTorch实现ResNet50、ResNet101和ResNet152示例
2020/01/14 Python
python中的列表和元组区别分析
2020/12/30 Python
Yves Rocher伊夫·黎雪美国官网:法国始创植物美肌1959
2019/01/09 全球购物
.NET现在共支持多少种语言
2014/02/26 面试题
会计主管竞聘书
2015/09/15 职场文书
2015年新教师个人工作总结
2015/10/14 职场文书
干货分享:推荐信写作技巧!
2019/06/21 职场文书