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
Centos环境下Postgresql 安装配置及环境变量配置技巧
May 18 PostgreSQL
postgresql无序uuid性能测试及对数据库的影响
Jun 11 PostgreSQL
postgres之jsonb属性的使用操作
Jun 23 PostgreSQL
PostGIS的安装与入门使用指南
Jan 18 PostgreSQL
使用PostGIS完成两点间的河流轨迹及流经长度的计算(推荐)
Jan 18 PostgreSQL
Oracle配置dblink访问PostgreSQL的操作方法
Mar 21 PostgreSQL
PostgreSQL并行计算算法及参数强制并行度设置方法
Apr 06 PostgreSQL
PostgreSQL并行计算算法及参数强制并行度设置方法
Apr 07 PostgreSQL
PostgreSQL 插入INSERT、删除DELETE、更新UPDATE、事务transaction
Apr 12 PostgreSQL
PostgreSQL数据库去除重复数据和运算符的基本查询操作
Apr 12 PostgreSQL
PostgreSQL怎么创建分区表详解
Jun 25 #PostgreSQL
PostgreSQL出现死锁该如何解决
PostgreSQL基于pgrouting的路径规划处理方法
Apr 18 #PostgreSQL
postgreSQL数据库基础知识介绍
PostgreSQL数据库去除重复数据和运算符的基本查询操作
PostgreSQL聚合函数介绍以及分组和排序
PostgreSQL 插入INSERT、删除DELETE、更新UPDATE、事务transaction
You might like
使用 MySQL Date/Time 类型
2008/03/26 PHP
PHP中Date()时间日期函数的使用方法小结
2011/04/20 PHP
PHP变量内存分配问题记录整理
2013/11/27 PHP
php验证码的制作思路和实现方法
2015/11/12 PHP
一波PHP中cURL库的常见用法代码示例
2016/05/06 PHP
Python中使用django form表单验证的方法
2017/01/16 PHP
老生常谈文本文件和二进制文件的区别
2017/02/27 PHP
laravel 框架实现无限级分类的方法示例
2019/10/31 PHP
jQuery function的正确书写方法
2013/08/02 Javascript
javascript生成json数据简单示例分享
2014/02/14 Javascript
javascript教程:关于if简写语句优化的方法
2014/05/17 Javascript
jQuery实现仿路边灯箱广告图片轮播效果
2015/04/15 Javascript
学习JavaScript设计模式之策略模式
2016/01/12 Javascript
Summernote实现图片上传功能的简单方法
2016/07/11 Javascript
深入了解javascript 数组的sort方法
2018/06/01 Javascript
使用elementUI实现将图片上传到本地的示例
2018/09/04 Javascript
微信小程序实现上传多个文件 超过10个
2020/03/30 Javascript
python版学生管理系统
2018/01/10 Python
使用pandas批量处理矢量化字符串的实例讲解
2018/07/10 Python
解决python selenium3启动不了firefox的问题
2018/10/13 Python
Python增强赋值和共享引用注意事项小结
2019/05/28 Python
用Python徒手撸一个股票回测框架搭建【推荐】
2019/08/05 Python
使用python切片实现二维数组复制示例
2019/11/26 Python
Python数组并集交集补集代码实例
2020/02/18 Python
Python爬虫实例——爬取美团美食数据
2020/07/15 Python
HTML5 CSS3给网站设计带来出色效果
2009/07/16 HTML / CSS
亚洲颇具影响力的男性在线购物零售商:His
2019/11/24 全球购物
为什么要优先使用同步代码块而不是同步方法?
2013/01/30 面试题
业务部主管岗位职责
2014/01/29 职场文书
合同协议书格式
2014/04/18 职场文书
廉政承诺书
2015/01/19 职场文书
2015年信访维稳工作总结
2015/04/07 职场文书
保护校园环境倡议书
2015/04/28 职场文书
小学校长开学致辞
2015/07/29 职场文书
Python图像处理之图像拼接
2021/04/28 Python
详解Redis主从复制实践
2021/05/19 Redis