当前位置: 首页 > news >正文

postgresql字符串处理的函数

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');

 

相关文章:

postgresql字符串处理的函数

1. SPLIT_PART SPLIT_PART() 函数通过指定分隔符分割字符串,并返回第N个子串。语法: SPLIT_PART(string, delimiter, position) string : 待分割的字符串 delimiter:指定分割字符串 position:返回第几个字串,从1开始&…...

(1)攻防世界web-Training-WWW-Robots

1.开启环境,查看网页 翻译一下 2.前往robots.txt 命令:http://61.147.171.105:57663/robots.txt 3.前往fl0g.php 命令:http://61.147.171.105:57663/fl0g.php 4.得到flag cyberpeace{92ec1ef9b6d900100399093b9ae9e386}...

list.set交换数据需要(or不需要)添加其他中间变量,两个例子告诉你

说明:set()方法是来修改指定位置的元素。 两个参数,第一个参数是要修改的元素的索引,第二个参数是要设置的新值。 案例一:当链表中传入的是字符串时: public static void main(String[] args) {List list new Linke…...

Linux中的主要系统调用

Linux 操作系统中就是创建进程。创建进程的系统调用叫fork。在 Linux 里,要创建一个新的进程,需要一个老的进程调用 fork 来实现,其中老的进程叫作父进程(Parent Process),新的进程叫作子进程(C…...

在vscode中配置git bash终端、git 源码管理

打开vscode文件->首选项->设置,打开设置搜索shell windows将以下配置添加到vscode中的settings.json中 注意: terminal.integrated.profiles.windows这个配置项是就是添加终端的terminal.integrated.defaultProfile.windows这个是配置默认选项的…...

(三十四)大数据实战——scala运行环境安装配置及IDEA开发工具集成

前言 本节内容我们主要介绍一下scala运行环境的安装配置以及在idea开发工具中集成scala插件,便于scala项目的开发。 在开始scala安装配置之前,我们要先安装好jvm运行环境,scala运行于Java虚拟机(JVM)上,并…...

Double 4 VR智能互动教学系统的教学应用

1. 激发学习兴趣 Double 4 VR智能互动教学系统通过虚拟现实技术为学生创造了一个身临其境的学习环境。学生可以通过戴上VR头盔,进入虚拟世界中与教学内容互动。这种沉浸式的学习方式能够激发学生的学习兴趣,使他们更加主动地参与到课堂中来。 2. 提供直…...

GPU 驱动下载记录

1. 我的GPU 是这个:GeForce RTX 2060 下载链接是:Official Drivers | NVIDIA...

KILM: Knowledge Injection into Encoder-Decoder Language Models

本文是LLM系列文章,针对《KILM: Knowledge Injection into Encoder-Decoder Language Models》的翻译。 KILM:知识注入到编码器-解码器语言模型 摘要1 引言2 相关工作3 方法4 实验5 讨论6 结论局限性 摘要 大型预训练语言模型(PLMs)已被证明在其参数内保…...

205、使用消息队列实现 RPC(远程过程调用)模型的 服务器端 和 客户端

目录 ★ RPC模型(远程过程调用通信模型)▲ 完整过程:代码演示总体流程解释:ConstantUtil 常量工具类ConnectionUtil RabbitMQ连接工具类Server 服务端Client 客户端测试结果服务端客户端 完整代码ConstantUtil 常量工具类Connecti…...

C++中的函数

在C中,函数是程序的一部分,它执行特定的任务。函数的基本语法如下: type function-name( parameter list ) { body of the function } type 是函数的返回类型,function-name 是函数的名称, parameter list 是传递…...

java操作时间的方式

java操作时间的方式 获取年月日时分秒 public class Test { public static void main(String[] args) { System.out.println("----------使用Calendar--------------------"); Calendar cal Calendar.getInstance(); System.out.println(&q…...

上网冲浪发现多处XSS

突然的发现 今天上网冲浪,突然想起来有一种神器,叫废话生成器,之前是在哪里下了个软件玩了一下,然后就给删除了,因为我觉得这个软件不过就是调用了一个web接口实现的,一个网页能解决的事还要我下一个软件。…...

机器学习的打分方程汇总

机器学习的打分方程集合 受到机器学习(Machine Learning)和深度学习(Deep Learning)等算法模型的创新性冲击,其应用范围涵盖了自然语言处理(Natural Language Processing)、自动驾驶&#xff08…...

一文了解数据管理框架以及数据战略制定方法

这一节主要介绍数据管理这一章的另一重要部分,也就是我们在数据管理经常使用到的数据管理框架以及数据战略制定方法。 要制定数据管理框架,或者是组织需要制定数据治理规划或数据管理规划,需要首先制定与业务战略对齐的数据战略。 01、数据…...

智能管家“贾维斯”走进现实?AI Agent或成2023科技领域新风向标

漫威粉们想必都知道《钢铁侠》系列电影中,有一个不可或缺的角色——贾维斯。但就算是没有看过任何一部大电影的路人,只要通过一个词就可以了解“贾维斯”是一个什么样的角色——智能管家。 作为托尼斯塔克的助手,贾维斯的存在让主人的生活更…...

【广州华锐互动】VR高层小区安全疏散演练系统

在今天的高科技时代,虚拟现实(VR)技术已经被广泛应用到各个领域,包括教育和培训。由广州华锐互动定制开发的VR高层小区安全疏散演练系统,开始在房地产行业中崭露头角。这种系统通过模拟真实的紧急情况,帮助…...

用Python做一个文件夹整理工具

文章目录 简介文件夹对话框文件映射组件完整组件 简介 我们的目的是做一个像下面这样的工具,前面两个输入框,用于输入源路径和目标路径,下面的图片、视频、音乐表示在目标路径中创建的文件夹,后面的文件后缀,表示将这…...

Tortoise SVN 察看本地缓存密码

1、打开设置(Settings) 2、查看保存的数据 3、打开鉴权数据 4、查看密码 CTRLSHIFT双击表格,就会出现一列密码列 (我的是Mac PD虚拟Win11,CTRLSHIFTOPTION双击表格) 原文见这里: Recover SVN …...

MSP430F5529晶振配置

MSP430(F5529)相比MSP430(F149)来讲,功能更加强大。 UCS简介 MSP430F5XX/MSP430F6XX系列器件的UCS包含有五种时钟源,依次是:XT1CLK、VLOCLK、REFOCLK、DCOCLK和XT2CLK。这五种时钟的详细介绍请参考该系列芯片的指导手册,其中XT1C…...

【数字电路】从双稳态到触发器:时序逻辑的存储基石

1. 数字世界的记忆细胞:双稳态电路探秘 当你按下电脑电源键的瞬间,数十亿个微型存储单元开始工作,它们就像数字世界的记忆细胞,忠实地记录着每一个比特的信息。这一切的起点,正是我们今天要探讨的双稳态电路。想象一下…...

实战指南:运用快马平台与mcp协议构建企业级智能数据分析系统

今天想和大家分享一个最近用InsCode(快马)平台实现的实战项目——基于MCP协议的企业级智能数据分析系统。这个项目特别适合需要整合多源数据的企业场景,整个过程让我深刻体会到MCP协议在复杂系统中的桥梁作用,以及快马平台如何让这类应用的开发部署变得异…...

GitHub功能多元拓展,korb工具革新REWE购物流程

【导语:GitHub提供了涵盖AI代码创作、开发者工作流、应用程序安全等多方面的丰富功能,同时推出不同规模和用例的解决方案。而korb命令行工具则为REWE超市购物带来新体验,可实现自动化购物流程。】GitHub:功能全面的开发者平台GitH…...

如何用滑模控制(SMC)解决机器人轨迹跟踪中的抖动问题?5个实战技巧分享

如何用滑模控制(SMC)解决机器人轨迹跟踪中的抖动问题?5个实战技巧分享 当机械臂在执行高精度焊接任务时,末端执行器突然出现5Hz的高频震颤——这种场景对工业机器人工程师而言绝不陌生。滑模控制(SMC)因其强…...

探索DeepCAD:基于深度学习的CAD模型生成技术入门

探索DeepCAD:基于深度学习的CAD模型生成技术入门 【免费下载链接】DeepCAD code for our ICCV 2021 paper "DeepCAD: A Deep Generative Network for Computer-Aided Design Models" 项目地址: https://gitcode.com/gh_mirrors/de/DeepCAD 副标题&…...

GitHub新手避坑指南:从SSH Key到Personal Token,搞定本地项目上传(含大文件失败解决方案)

GitHub新手避坑指南:从SSH Key到Personal Token,搞定本地项目上传(含大文件失败解决方案) 第一次用GitHub上传项目就像玩扫雷游戏——表面风平浪静,实际暗藏玄机。上周帮实习生小李排查上传失败问题时,发现…...

基于STM32F与ESP8266的智能桌面天气时钟:从网络授时到OLED显示的完整实现

1. 项目背景与核心功能 最近在工作室捣鼓了一个特别实用的小玩意儿——用STM32F和ESP8266做的智能桌面天气时钟。这可不是普通的电子钟,它能自动联网校准时间,还能实时显示当地天气,放在书桌上既美观又实用。很多朋友看到后都问我是怎么做的&…...

SMR实战:如何将GWAS数据快速转换为BESD格式(附常见错误排查)

SMR实战:GWAS数据高效转换为BESD格式的完整指南与深度排错手册 在生物信息学研究中,基于汇总数据的孟德尔随机化(Summary-data-based Mendelian Randomization, SMR)已成为探索基因表达数量性状位点(eQTL)与…...

Hackintool:面向黑苹果爱好者的硬件配置诊断与优化工具

Hackintool:面向黑苹果爱好者的硬件配置诊断与优化工具 【免费下载链接】Hackintool The Swiss army knife of vanilla Hackintoshing 项目地址: https://gitcode.com/gh_mirrors/ha/Hackintool 黑苹果配置过程中,硬件兼容性问题常常成为用户最头…...

单机变联机:Nucleus Co-Op如何让你的电脑实现4人同屏游戏

单机变联机:Nucleus Co-Op如何让你的电脑实现4人同屏游戏 【免费下载链接】nucleuscoop Starts multiple instances of a game for split-screen multiplayer gaming! 项目地址: https://gitcode.com/gh_mirrors/nu/nucleuscoop 你是否曾想过,用一…...