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将数据加载到buffer cache中操作方法
Apr 16 PostgreSQL
浅谈PostgreSQL表分区的三种方式
Jun 29 PostgreSQL
postgresql使用filter进行多维度聚合的解决方法
Jul 16 PostgreSQL
PostgreSQL解析URL的方法
Aug 02 PostgreSQL
postgresql 删除重复数据案例详解
Aug 02 PostgreSQL
PostgreSQL13基于流复制搭建后备服务器的方法
Jan 18 PostgreSQL
Rust 连接 PostgreSQL 数据库的详细过程
Jan 22 PostgreSQL
postgresql中如何执行sql文件
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简介
2006/10/09 PHP
PHP mkdir()定义和用法
2009/01/14 PHP
php处理多图上传压缩代码功能
2018/06/13 PHP
解决laravel session失效的问题
2019/10/14 PHP
javascript showModalDialog,open取得父窗口的方法
2010/03/10 Javascript
基于jquery ajax 用户无刷新登录方法详解
2012/04/28 Javascript
javascript date格式化示例
2013/09/25 Javascript
jQuery判断当前点击的是第几个li的代码
2014/09/26 Javascript
Javascript的闭包详解
2014/12/26 Javascript
jQuery中:radio选择器用法实例
2015/01/03 Javascript
jQuery表单验证功能实例
2015/08/28 Javascript
js实现div在页面拖动效果
2016/05/04 Javascript
require.js+vue开发微信上传图片组件
2016/10/27 Javascript
JavaScript使用readAsDataUrl方法预览图片
2017/05/10 Javascript
详解vue-cli项目中怎么使用mock数据
2018/05/29 Javascript
vue实现自定义多选与单选的答题功能
2018/07/05 Javascript
基于node简单实现RSA加解密的方法步骤
2019/03/21 Javascript
微信小程序实现授权登录
2019/05/15 Javascript
Vue+Django项目部署详解
2019/05/30 Javascript
深入理解 TypeScript Reflect Metadata
2019/12/12 Javascript
vue学习笔记之给组件绑定原生事件操作示例
2020/02/27 Javascript
基于javascript原生判断DOM是否加载完毕
2020/10/14 Javascript
Django使用Jinja2模板引擎的示例代码
2019/08/09 Python
在Python中等距取出一个数组其中n个数的实现方式
2019/11/27 Python
TensorFlow的环境配置与安装教程详解(win10+GeForce GTX1060+CUDA 9.0+cuDNN7.3+tensorflow-gpu 1.12.0+python3.5.5)
2020/06/22 Python
详解Html5 监听拦截Android返回键方法
2018/04/18 HTML / CSS
斯洛伐克电子产品购物网站:DATART
2020/04/05 全球购物
成都思必达公司C#程序员招聘面试题
2013/06/26 面试题
怎样写好自荐信和推荐信
2013/12/26 职场文书
乡镇三项教育实施方案
2014/03/30 职场文书
领导干部群众路线剖析材料
2014/10/09 职场文书
给医院的感谢信
2015/01/21 职场文书
大学生学年个人总结
2015/02/15 职场文书
2016教师六五普法学习心得体会
2016/01/21 职场文书
《惊弓之鸟》教学反思
2016/02/20 职场文书
星际争霸:毕姥爷vs解冻03
2022/04/01 星际争霸