postgresql字符串处理的函数

news2024/11/20 20:23:11

1. SPLIT_PART
SPLIT_PART() 函数通过指定分隔符分割字符串,并返回第N个子串。语法:

SPLIT_PART(string, delimiter, position)
string : 待分割的字符串
delimiter:指定分割字符串
position:返回第几个字串,从1开始,该参数必须是正数。如果参数值大于分割后字符串的数量,函数返回空串。

示例:

SELECT SPLIT_PART('A,B,C', ',', 2); -- 返回B


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,NULL,zz}

3. regexp_split_to_array|regexp_split_to_table 
使用正则表达式分割字符串,用来将字符串转换成格式化数据,一个是转换成数组,一个是转换成结果集表,语法:

regexp_split_to_array ( string, pattern [, flags text ] ) → text[]
string : 待分割的字符串
pattern:正则表达式或指定分割字符串


示例1:正则表达式 

SELECT regexp_split_to_array('foo bar  baz', '\s+');


示例2:指定分割字符串

SELECT * FROM student t WHERE regexp_split_to_array(t.subject,',') @> array['英语','中国古典文学']

SELECT * FROM student t WHERE regexp_split_to_array(t.subject,',') @> regexp_split_to_array('英语','中国古典文学',',')

 regexp_split_to_table ( string, pattern [, flags text ] ) 
string : 待分割的字符串
pattern:正则表达式或指定分割字符串 

 
 Tips:查询具体排序的第几个的用regexp_split_to_array函数,查询是否包含的条件,则使用ARRAY_AGG与 regexp_split_to_table两个函数

4.regexp_split_to_array
和上面一样,只是返回数据类型,语法:

regexp_split_to_array( string, pattern ) 
string : 待分割的字符串
pattern:正则表达式或指定分割字符串

示例1(单个切断):

select regexp_split_to_array('the,quick,brown;fox;jumps', '[,;]')   -- 返回 {the,quick,brown,fox,jumps}

示例2(表字段和传入字符串比较):

select regexp_split_to_array(subjects,',') @> regexp_split_to_array('英语,中国古典文学',',')

@> 包含的关系,不指定顺序

subjects 包含 数据:'英语','中国古典文学'

= 相等的关系

subjects 等于 数据:'英语','中国古典文学'

!= 不等的关系

subjects 不等于 数据:'英语','中国古典文学'

&& 存在

subjects 包含 数据:'英语','中国古典文学' 其中的一条
5. regexp_matches
匹配一个POSIX正则表达式针对字符串并返回匹配的子字符串。语法:

REGEXP_MATCHES(string, pattern [, flags])
string : 待分割的字符串
pattern:要提取子字符串的字符串那匹配正则表达式
flag:一个或多个控制函数行为的字符
返回结果:即使结果数组仅包含单个元素,函数也会返回一组文本
示例1(提取指定符号后的内容):

SELECT REGEXP_MATCHES('Learning #Geeksforgeeks #geekPower', '#([A-Za-z0-9_]+)', 'g');

示例2(可以通过正则表达式匹配的所有模式都一样):
 

SELECT REGEXP_MATCHES('ABC', '^(A)(..)$', 'g');

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1105227.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++心愿便利店】No.9---C++之内存管理

文章目录 前言一、 C/C内存分布二、 C语言中动态内存管理方式三、 C中动态内存管理四、 operator new与operator delete函数五、 new和delete的实现原理六、 定位new表达式(placement-new)七、 malloc/free和new/delete的区别八、 内存泄漏 前言 👧个人主页&#xf…

基于内存的分布式NoSQL数据库Redis(六)AOF设计

文章目录 知识点21:Redis持久化:AOF设计知识点22:Redis持久化:AOF实现附录一:Jedis Maven依赖 知识点21:Redis持久化:AOF设计 目标:掌握Redis的AOF持久化机制 路径 step1&#xff1…

FPGA 图像缩放 1G/2.5G Ethernet PCS/PMA or SGMII实现 UDP 网络视频传输,提供工程和QT上位机源码加技术支持

目录 1、前言版本更新说明免责声明 2、相关方案推荐UDP视频传输--无缩放FPGA图像缩放方案我这里已有的以太网方案 3、设计思路框架视频源选择ADV7611 解码芯片配置及采集动态彩条跨时钟FIFO图像缩放模块详解设计框图代码框图2种插值算法的整合与选择 UDP协议栈UDP视频数据组包U…

从0到1,申请cos服务器并上传图片到cos文件服务器

目录 准备工作 Java代码编写 控制台打印 整理成工具类 编写接口 Postman测试 准备工作 1.进入网址腾讯云 产业智变云启未来 - 腾讯 (tencent.com) 2.搜索cos,点击立即使用,刚开始会免费赠送你 3.存储都是基于桶的,先创建桶,在桶里面创…

【C++】多态 -- 详解

⚪前言 声明一下,下面的代码和解释都是在 VS2019 下的 X86 程序中进行的,涉及的指针都是 4 bytes。如果要其他平台下,部分代码需要改动。比如:如果是 X64 程序,则需要考虑指针是 8 bytes 问题等等。其它编译环境下&…

TCP/IP(十八)TCP 实战抓包分析(二)TCP 三次握手和四次挥手

一 TCP三次握手和四次挥手 说明: 本文三次握手和四次挥手 无异常情况下的分析目标: 通过抓取和分析 HTTP 协议网络包,理解 TCP 三次握手和四次挥手的工作原理 ① 抓包和测试准备 1、 服务端事先执行 tcpdump 抓包 --> 172.25.2.100tcpdump -i b…

VMware 虚拟机里连不上网的解决方案

解决办法一: 虚拟机设置里,找到“网络适配器”,右边的网络连接选择“NAT 模式”,如果不行的话再 linux系统。还是不行的话接着看第二种解决方案。 解决方法二: 可能原因是VMware NET Service服务没开 win R,输入&a…

CSS 笔记/练习

CSS 概述 与 html 配合,实现内容与样式分离样式美化 标签中元素作用 class:class属性用于为元素指定一个或多个样式类。通过为元素添加class属性,可以将其与CSS样式表中的样式规则关联起来,从而改变元素的外观和行为。一个元素可…

Confluence 解决PDF导出乱码问题

1.原因 PDF导出乱码是因为由于服务器缺少必要字体 2.解决办法 下载字体文件将字体文件重命名为simhei.ttf Confluence→管理→PDF导出语言支持,导入字体即可

sqlalchemy更新json 字段的部分字段

需求描述: 我们有个json字段,存储的数据形如下,现在需要修改love {"dob":"21","subject":{"love":"programming"}}工程结构 main.py from sqlalchemy import Column, String, Integer,c…

微信公众号如何变更为订阅号?

公众号迁移有什么作用?只能变更主体吗?大家都知道,微信公众号是不支持直接变更主体的;但是很多情况下,我们又不得不进行账号主体的更换;这时候,我么就可以通过账号迁移功能,将A公众号…

图像抓取代码示例

以下是一个使用luasocket-http库的Lua下载器程序,用于下载图像。此程序使用了https://www.duoip.cn/get_proxy的代码。 -- 引入luasocket和luasocket-http库 local socket require("socket") local http require("http") ​ -- 获取代理服务…

Java入门GUI第一章

Java入门GUI第一章 一.简介 GUI的核心技术:Swing AWT 现在GUI逐渐被淘汰,因为: 界面不美观需要jre环境 为什么我们要学习? 可以写出自己想要的小工具工作时候可能会遇到维护Swing界面,概率特别小!了…

「蓝桥·算法双周赛」第一场公开赛【待补题填坑】

三带一【算法赛】 - 蓝桥云课 (lanqiao.cn) 给定四个字符&#xff0c;判断是否其中有三个相同&#xff0c;另一个与他们不同 #include <bits/stdc.h> void solve() {std::string s;std::cin>>s;char as[0],bs[1],cs[2],ds[3];if(ab&&ac&&a!d) std:…

AdaInf: Data Drift Adaptive Scheduling 阅读笔记

论文原文链接 文章目录 摘要一、背景、动机和主要贡献背景动机主要问题研究挑战 主要贡献 二、实验分析数据漂移对准确性的影响推理的早期退出结构最优请求批处理大小GPU内存通信 三、AdaInf系统设计概览数据漂移感知再训练-推理DAG生成决定数据漂移影响生成再训练推理DAG 数据…

【LeetCode75】第七十三题 用最少数量的箭引爆气球

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 本题和上一题基本一样&#xff0c;上一题是要我们尽量让区间不重叠&#xff0c;而本题是要我们尽量让区间重叠。 所以我们的做法和上一题…

3D Web轻量化工具HOOPS Web Platform助力Rapid DCS快速上市碳估算产品!

总部位于英国的Rapid DCS提供全面的交钥匙解决方案和服务&#xff0c;帮助建筑环境领域的客户充分利用数字化的优势。 Rapid DCS技术总监James Hunter表示&#xff1a;“如今的建筑项目需要一套与20甚至10年前的建筑项目不同的功能。” “例如&#xff0c;虽然成本规划一直很重…

每日汇评:随着上升趋势的恢复,黄金在1950美元上方等待破位

周三早间&#xff0c;黄金价格逼近1950美元&#xff0c;买家纷纷出手&#xff1b; 尽管市场情绪谨慎&#xff0c;但美元与美债交投疲弱&#xff0c;中国的乐观情绪逐渐消退&#xff1b; 金价重拾200日移动均线&#xff0c;但料持续升穿1950美元&#xff1b; 金价正从每盎司1943…

E056-web安全应用-File Inclusion文件包含漏洞进阶

课程名称&#xff1a; E056-web安全应用-File Inclusion文件包含漏洞进阶 课程分类&#xff1a; web安全应用 --------------------------------------------------------------------------------------------------------------------------------- 实验等级: 中级 任…

Python批量替换文件中内容,效率加倍

文章目录 我遇到的问题解决代码我遇到的问题 由于我的SQL文件太大了,手动去替换估计累死…所以需要一个批量替换。其它类似问题,同理处理。 解决代码 # 定义要替换的内容 replacements = {utf8mb4_0900_ai_ci: utf8_general_ci,utf8mb4: utf8 }# 读取文件内容 with open<…