【数据库】postgresql截取最后一个字符之前的所有字符,如V1.0.0.20230731110947中取V1.0.0

在PostgreSQL中,我们可以使用position函数和split_part函数来截取最后一个.之前的所有字符。这两个函数都非常有用,尤其是在处理文本数据时。

position函数

position函数用于查找一个字符串中某个子串的位置。它的语法如下:

scss 复制代码
POSITION(substring IN string)

其中,substring是要查找的子串,string是要在其中查找子串的字符串。如果找到了子串,则返回第一个匹配的位置;否则返回0。

例如,假设我们有一个名为mytable的表,其中有一列名为mycolumn的数据类型为text。我们想要找到每个记录中最后一个.之前的所有字符,可以使用以下查询:

scss 复制代码
SELECT position('.' IN mycolumn) - length(mycolumn) + 1 AS new_lengthFROM mytable;

这将返回一个新的列new_length,其中包含了每个记录中最后一个.之前的所有字符的长度。

split_part函数

split_part函数用于将一个字符串分割成多个子串。它的语法如下:

scss 复制代码
SPLIT_PART(string, delimiter, field)

其中,string是要分割的字符串,delimiter是分隔符,field是要返回的子串的位置。如果field大于字符串中的子串数,则返回空字符串。

例如,假设我们想要将mycolumn中的每个字符串按照.进行分割,并返回最后一个.之后的所有字符,可以使用以下查询:

arduino 复制代码
SELECT split_part(mycolumn, '.', -1) AS new_stringFROM mytable;

这将返回一个新的列new_string,其中包含了每个记录中最后一个.之后的所有字符。

综合运用position和split_part函数

有时候我们需要同时使用position和split_part函数来进行更复杂的文本操作。例如,假设我们想要从mycolumn中的每个字符串中提取出最后一个.之后的所有字符,但是只提取前三个字符。可以使用以下查询:

sql 复制代码
SELECT substring(mycolumn FROM position('.' IN mycolumn) - length(mycolumn) + 1 FOR 3) AS new_stringFROM mytable;

这将返回一个新的列new_string,其中包含了每个记录中最后一个.之后的前三个字符。注意,这里使用了substring函数来截取字符串的一部分。

相关推荐
程序猿DD39 分钟前
OctaFuse Gateway 2.3.0:供应商粘性绑定,让缓存命中更稳定
后端
乐橙开放平台1 小时前
老旧小区监控事件驱动派单:基于 setMessageCallback 的 msgType 分级与工单闭环实现
后端·物联网·音视频
猿长大人2 小时前
C# | MediatR 入门指南:后端架构解耦
分布式·后端·架构·c#·.net
人间凡尔赛2 小时前
Kubernetes十周年:从Cloud Native到AI Native的架构范式跃迁
后端·云原生·架构
John jj2 小时前
拆解 Telegram 群组频道收录市场:三类方案,一个可运行的评分模型,目前TG中文人工评分加模型评分机制——LetsTG收录“快速”、“无门槛”
大数据·后端·python·深度学习·搜索引擎·django·全文检索
Boop_wu3 小时前
SpringBoot 集成阿里云短信认证服务(个人)
spring boot·后端·阿里云
Gopher_HBo3 小时前
Engine 核心(gin.go)
后端
用户125758524363 小时前
为什么队列长度归零,不代表后台异步任务真的跑完了
redis·后端·go
晚安code3 小时前
Java编程规范避坑指南:阿里开发手册15条强制规约实战解析
java·后端
小蒜学长4 小时前
“守望自然”招募志愿者环保行动网站的设计与实现(代码+数据库+LW)
java·数据库·spring boot·后端