postgrepsql字符串分函数、数组长度函数、分割符分割字符串为数组

news/2024/10/31 5:29:40/

postgrepsql字符串分函数、数组长度函数、分割符分割字符串为数组

场景需求

某张表里有存储字符传为文件名(如下),现在有一个数据需求,要求查询文件的都有那些后缀

xx.jar
xxx.pom
xxx.aar
xxx_xxx_1.6.0.jar
xxx_xxx_1.5.0.pom

场景处理:split字符串返回去重的文件后缀名

分析以上场景需求得出要做的事情为: 以点号(.)分割指定字段,返回分割结果数组的最后一个

# 最终执行sql  str为要处理的字段, table_name为要查询的表名
SELECT split_part(str, '.', array_length(string_to_array(str, '.'), 1)) AS last_part FROM table_name;

现在来看下上述语句用的三个函数的用法: split_part、array_length、string_to_array

string_to_array

string_to_array: 将字符串按照指定的分隔符 分割 string_to_array(string,delimiter)string: 指定字符串delimiter: 分割符array_to_string(ARRAY[1, 2, 3, 5], ',') -> 1,2,3,5

array_length

array_length 获取数组指定维度的长度array_length(arrays, integer )arrays: 数组integer: 维度array_length([0, 1, 2], 1) --> 3 获取一维数组的长度array_length([[1,2], [3,4], [5,6]], 2) --> 2  获取二维数组的长度

split_part

split_part:分割字符串,可以指定从第几个开始返回
split_part(string, delimiter, n)
string: 要分割的字符串
delimiter: 分割符
n: 返回从分割结果第几个返回(从1开始计数)

str=xx.jar
split_part(str, '.', array_length(str, 1)) -->  jar

http://www.ppmy.cn/news/83066.html

相关文章

弹性伸缩AS:实现资源优化利用的未来趋势

在信息技术日新月异的今天,人们对计算机性能的要求越来越高。然而,无论是家庭用户还是企业用户,其计算需求都会随着时间的推移而发生变化。为了满足这种需求,弹性伸缩AS应运而生。本文将从概念、应用和优缺点三个方面来探讨弹性伸…

Real-Time C++ 嵌入式C++ 程序设计(一)

翻译自 Real-Time C Efficient Object-Oriented and Template Microcontroller Programming 4th Edition - Kormanyos, Christopher,这书涉及了从C11 到C20 的内容,主要介绍使用C 的模板、面向对象等特性设计嵌入式程序。书里的示例代码都是公开的&#…

通过注册表显示和隐藏“我的电脑”、“回收站”等图标

注册表路径: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel 其中{208D2C60-3AEA-1069-A2D7-08002B30309D}是我的电脑,值的类型为REG_DWORD,改为0后隐藏,1代表显示。 其…

最小生成树

1:什么是最小生成树? 最小生成树是一个无向连通图的生成树,它的所有边的权值之和最小。也就是说,最小生成树是一棵权值最小的连通子图,其中包含了原图中的所有节点,但只保留了一部分边。最小生成树通常用于在一个图中寻找一个最…

Windows中的Tomcat服务器安装证书并设置强制https访问

官网参考 阿里云 华为云 获取证书 自己生成证书 这边介绍一个生产开发环境证书的方式:使用 Java 提供的工具:keytool keytool -genkeypair -alias "tomcat" -keyalg "RSA" -keystore "d:\tomcat.keystore" Tomcat服…

Springboot +spring security,登录用户数据获取

一.简介 前面章节学习了登录表单的配置并且对源码进行了简单的分析,现在有个问题了,既然用户登录了,那么如何在接口中获取用户信息呢。这篇文章就来看下这个问题,代码中获取登录用户信息。 二.创建项目 如何创建一个SpringSecu…

设计模式 (一) 入门

目录 设计模式系列文章主要包含 1.什么是设计模式? 2.设计模式的分类 2.1 创建型设计模式 2.2 结构型设计模式 2.3 行为型设计模式 设计模式系列文章主要包含 设计模式 (一) 入门 设计模式 (二) 创建型设计模式系列 设计模式 (三) 结构型设计模式系列 …

平台使用篇 | 批处理(bat)脚本使用教程(三)

导读 本讲针对RflySim平台的一些特点简要介绍了平台使用批处理技术的原因,并根据CopterSim中仿真功能区的参数设置阐述了批处理技术在平台中的具体运用。 平台使用篇 | 批处理(bat)脚本使用教程(三) RflySim平台使用批处理技术的原因 ①调用多个软件Rf…