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 22 PostgreSQL
如何使用PostgreSQL进行中文全文检索
May 27 PostgreSQL
浅谈PostgreSQL表分区的三种方式
Jun 29 PostgreSQL
PostgreSQL解析URL的方法
Aug 02 PostgreSQL
PostGIS的安装与入门使用指南
Jan 18 PostgreSQL
Oracle配置dblink访问PostgreSQL的操作方法
Mar 21 PostgreSQL
PostgreSQL数据库创建并使用视图以及子查询
Apr 11 PostgreSQL
PostgreSQL 插入INSERT、删除DELETE、更新UPDATE、事务transaction
Apr 12 PostgreSQL
postgreSQL数据库基础知识介绍
Apr 12 PostgreSQL
PostgreSQL怎么创建分区表详解
Jun 25 PostgreSQL
PostgreSQL逻辑复制解密原理解析
Sep 23 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/08 PHP
PHP获取Exif缩略图的方法
2015/07/13 PHP
php中strtotime函数性能分析
2016/11/20 PHP
php workerman定时任务的实现代码
2018/12/23 PHP
jQuery实现的类flash菜单效果代码
2010/05/17 Javascript
jquery移动listbox的值原理及代码
2013/05/03 Javascript
JQuery+DIV自定义滚动条样式的具体实现
2013/06/25 Javascript
js实现鼠标经过表格行变色的方法
2015/05/12 Javascript
JavaScript中的toUTCString()方法使用详解
2015/06/12 Javascript
全面解析Bootstrap弹窗的实现方法
2015/12/01 Javascript
Bootstrap布局之栅格系统详解
2016/06/13 Javascript
js中的DOM模拟购物车功能
2017/03/22 Javascript
vue 添加vux的代码讲解
2017/11/30 Javascript
详细分析JS函数去抖和节流
2017/12/05 Javascript
Python爬取当当、京东、亚马逊图书信息代码实例
2017/12/09 Python
python爬取基于m3u8协议的ts文件并合并
2019/04/26 Python
详解python和matlab的优势与区别
2019/06/28 Python
使用 Django Highcharts 实现数据可视化过程解析
2019/07/31 Python
Python代理IP爬虫的新手使用教程
2019/09/05 Python
python中逻辑与或(and、or)和按位与或异或(&、|、^)区别
2020/08/05 Python
python Matplotlib数据可视化(1):简单入门
2020/09/30 Python
HTML5中的autofocus(自动聚焦)属性介绍
2014/04/23 HTML / CSS
NBA欧洲商店(英国):NBA Europe Store UK
2018/07/27 全球购物
基层工作经历证明
2014/01/13 职场文书
英语感恩演讲稿
2014/01/14 职场文书
行政副总岗位职责
2014/02/23 职场文书
运输服务质量承诺书
2014/03/27 职场文书
股东合作协议书
2014/04/14 职场文书
《陈毅探母》教学反思
2014/05/01 职场文书
奥林匹克运动会口号
2014/06/19 职场文书
夫妻婚内购房协议书
2014/10/05 职场文书
初中成绩单评语
2014/12/29 职场文书
英语教学课后反思
2016/02/15 职场文书
股东出资协议书
2016/03/21 职场文书
python神经网络ResNet50模型
2022/05/06 Python
mysql sql常用语句大全
2022/06/21 MySQL