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通过oracle_fdw访问Oracle数据的实现步骤
May 21 PostgreSQL
如何使用PostgreSQL进行中文全文检索
May 27 PostgreSQL
浅谈PostgreSQL表分区的三种方式
Jun 29 PostgreSQL
postgresql使用filter进行多维度聚合的解决方法
Jul 16 PostgreSQL
PostgreSQL解析URL的方法
Aug 02 PostgreSQL
关于PostgreSQL JSONB的匹配和交集问题
Sep 14 PostgreSQL
PostgreSQL13基于流复制搭建后备服务器的方法
Jan 18 PostgreSQL
Rust 连接 PostgreSQL 数据库的详细过程
Jan 22 PostgreSQL
PostgreSQL并行计算算法及参数强制并行度设置方法
Apr 06 PostgreSQL
PostgreSQL并行计算算法及参数强制并行度设置方法
Apr 07 PostgreSQL
PostgreSQL数据库创建并使用视图以及子查询
Apr 11 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 按位与或 (^ 、&)
2013/06/21 PHP
Laravel框架路由配置总结、设置技巧大全
2014/09/03 PHP
php一行代码获取文件后缀名实例分析
2014/11/12 PHP
php自定义函数br2nl实现将html中br换行符转换为文本输入中换行符的方法【与函数nl2br功能相反】
2017/02/17 PHP
Thinkphp 框架扩展之Widget扩展实现方法分析
2020/04/23 PHP
JS 自定义带默认值的函数
2011/07/21 Javascript
基于jQuery的前端数据通用验证库
2011/08/08 Javascript
jquery 插件开发 extjs中的extend用法小结
2013/01/04 Javascript
JS获取节点的兄弟,父级,子级元素的方法
2014/01/09 Javascript
javascript实现删除前弹出确认框
2015/06/04 Javascript
node.js require() 源码解读
2015/12/13 Javascript
浅谈JS中的bind方法与函数柯里化
2016/08/10 Javascript
javascript实现去除HTML标签的方法
2016/12/26 Javascript
jQuery查找dom的几种方法效率详解
2017/05/17 jQuery
Vue实现数据请求拦截
2019/10/23 Javascript
在Vue中使用this.$store或者是$route一直报错的解决
2019/11/08 Javascript
python实现多线程暴力破解登陆路由器功能代码分享
2015/01/04 Python
Python中map,reduce,filter和sorted函数的使用方法
2015/08/17 Python
利用python批量给云主机配置安全组的方法教程
2017/06/21 Python
Python2.X/Python3.X中urllib库区别讲解
2017/12/19 Python
Python numpy实现二维数组和一维数组拼接的方法
2018/06/05 Python
python 实现分页显示从es中获取的数据方法
2018/12/26 Python
django celery redis使用具体实践
2019/04/08 Python
python numpy之np.random的随机数函数使用介绍
2019/10/06 Python
详解Django自定义图片和文件上传路径(upload_to)的2种方式
2020/12/01 Python
python将YUV420P文件转PNG图片格式的两种方法
2021/01/22 Python
css3弹性盒模型(Flexbox)详细介绍
2014/10/08 HTML / CSS
宝宝周岁宴答谢词
2014/01/26 职场文书
保护环境建议书400字
2014/05/13 职场文书
学生未请假就回家检讨书
2014/09/22 职场文书
2014年双拥工作总结
2014/11/21 职场文书
检讨书大全
2015/01/27 职场文书
扩展多台相同的Web服务器
2021/04/01 Servers
python中os.path.join()函数实例用法
2021/05/26 Python
SpringBoot实现异步事件驱动的方法
2021/06/28 Java/Android
安装harbor作为docker镜像仓库的问题
2022/06/14 Servers