postgresql-字符函数

postgresql-字符函数

  • 字符串连接
  • 字符与编码
  • 字符串长度
  • 大小写转换
  • 子串查找与替换
  • 截断与填充
  • 字符串格式化
  • MD5 值
  • 字符串拆分
  • 字符串反转

字符串连接

concat(str, …)函数用于连接字符串,并且忽略其中的 NULL 参数;concat_ws(sep, str, …)
函数使用指定分隔符 sep 连接字符串。

select concat(2, null, 22), concat_ws(' and ', 2, null, 22);

在这里插入图片描述
两个竖杠(||)也可以用于连接字符串,但是 NULL 参数将会返回 NULL。

SELECT 'Post'||'greSQL', 'Post'||NULL||'greSQL';

在这里插入图片描述

字符与编码

ascii(string)函数返回第一个字符的 ASCII 码。对于 UTF8 返回 Unicode 码;对于其他多字节
编码,参数必须是一个 ASCII 字符。

select ascii('x');

在这里插入图片描述
chr(int)函数返回编码对应的字符。对于 UTF8,参数指定的是 Unicode 码;对于其他多字节
编码,参数必须对应一个 ASCII 字符。参数不允许为 0(空字符),因为 text 数据类型不能存储
空字符
在这里插入图片描述

字符串长度

bit_length(string)函数用于计算字符串包含的比特数;length(string)char_length(string)
character_length(string)函数计算字符串包含的字符数;octet_length(string) 函数计算字符串包
含的字节数。
在这里插入图片描述

大小写转换

lower(string)函数将字符串转换为小写形式,
upper(string)函数将字符串转换为大写形式,
initcap(string)函数将每个单词的首字母大写,其他字母小写
在这里插入图片描述

子串查找与替换

substring(string [FROM] [for])函数用于提取从位置 FROM 开始的 for 个字符子串,位置从
1 开始计算。substr(string, FROM [, count])的作用相同。
在这里插入图片描述
left(str, n)函数返回字符串左边的 n 个字符。如果 n 为负数,返回除了最后|n|个字符之外的
所有字符
right(str, n)函数返回字符串右边的 n 个字符。如果 n 为负数,返回除了左边|n|个字符之外的
字符。
在这里插入图片描述
substring(string FROM pattern)函数提取匹配 POSIX 正则表达式的子串。
substring(string FROM pattern for escape)函数提取匹配 SQL 正则表达式的子串。
在这里插入图片描述
regexp_match(string, pattern [, flags])函数返回匹配 POSIX 正则表达式的第一个子串。
在这里插入图片描述
regexp_matches(string, pattern [, flags])函数返回匹配 POSIX 正则表达式的所有子串,结果
是一个集合
在这里插入图片描述
position(substring in string)返回子串的位置;strpos(string, substring)函数的作用相同,但
是参数顺序相反。
在这里插入图片描述
starts_with(string, prefix)函数判断 string 是否以 prefix 开头,如果是则返回 true;否则返回
false。
在这里插入图片描述
replace(string, FROM, to)函数将字符串 string 中的 FROM 子串替换为 to 子串;
regexp_replace(string, pattern, replacement [, flags])函数字符串 string 中匹配 POSIX 正则表达式
pattern 的子串替换为 replacement
在这里插入图片描述
translate(string , FROM , to)函数将字符串 string 中出现在 FROM 中的字符串替换成 to 中相
应位置的字符。如果 FROM 长度大于 to,在 to 中没有对应值的字符将被删除。
在这里插入图片描述
overlay(string placing substring FROM [for])函数使用 substring 覆盖字符串 string 中从
FROM 开始的 for 个字符。

select overlay('txxxxas' placing 'hom' from 2 for 4);

在这里插入图片描述

截断与填充

trim([leading | trailing | both] [characters] FROM string)函数从字符串的开头(leading)、
结尾(trailing)或者两端(both)删除由指定字符 characters(默认为空格)组成的最长子串;
trim([leading | trailing | both] [FROM] string [, characters])函数的作用相同。

select trim(both 'xyz' from 'yxTomxx');

在这里插入图片描述
btrim(string [, characters])函数的作用与上面 trim 函数的 both 选项相同;ltrim(string [, characters])与上面 trim 函数的 leading 选项相同;rtrim(string [, characters])函数上面 trim 函数的 trailing 选项相同。

select btrim('yxTomxx', 'xyz'), ltrim('yxTomxx', 'xyz'), rtrim('yxTomxx',
'xyz');

在这里插入图片描述
lpad(string, length [, fill ])函数在 string 左侧使用 fill 中的字符(默认空格)进行填充,直到
长度为 length。如果 string 长度大于 length,从右侧截断到长度 length。

rpad(string, length [, fill ])函数在 string 右侧使用 fill 中的字符(默认空格)进行填充,直到
长度为 length。如果 string 长度大于 length,从右侧截断到长度 length。

repeat(string, number)函数将字符串 string 重复 N 次。

select lpad('hi', 5, 'xy'), rpad('hi', 5, 'xy'), repeat('Pg', 4);

在这里插入图片描述

字符串格式化

format(formatstr , formatarg)用于对字符串格式化,类似于 C 语言中的 sprintf 函数。

select format('hello %s, %1$s', 'world');

在这里插入图片描述

MD5 值

md5(string)函数用于返回十六进制格式的 MD5 值。
在这里插入图片描述

字符串拆分

regexp_split_to_table(string, pattern[, flags])函数用于拆分字符串,使用 POSIX 正则表达式
作为分隔符。函数的返回类型是 text 集合。

select regexp_split_to_table('hello world', '\s+');

在这里插入图片描述
split_part(string, delimiter, field)函数使用 delimiter 拆分字符串,并返回指定项(从 1 开始
计数)。

select split_part('abc~@~def~@~ghi', '~@~', 2);

在这里插入图片描述

字符串反转

reverse(str)函数用于将字符串反转。

select reverse('上海自来水');

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python GUI应用程序开发之wxPython使用详解

概要 wxPython是一个强大的跨平台GUI工具包,它使用Python编程语言开发,提供了丰富的控件功能。如果你是一名Python开发者,而且希望创建一个功能齐全的桌面应用程序,那么wxPython是一个值得考虑的选择。 什么是wxPython wxPython…

执行jmeter端口不够用报错(Address not available)

执行jmeter端口不够用报错(Address not available) linux解决方案 // 增加本地端口范围 echo 1024 65000 > /proc/sys/net/ipv4/ip_local_port_range// 启用快速回收TIME_WAIT套接字 sudo sysctl -w net.ipv4.tcp_tw_recycle1// 启用套接字的重用 sudo sysctl -w net.ipv4.t…

IdentityServer密码长度超长会导致跳转到登录页

应用系统项目的安全要求越来越高,基本都是采取https等加密证书传输,无法使用https的,也是要求不能明文传输内容,因此做一些等保要求,密码需要加密后才能传输给服务端,所以前端会采取一些密码手段&#xff0…

单变量图的类型与直方图绘图基础

文章目录 单变量图的类型1.直方图(histogram plot)2.密度图(density plot)3.Q-Q 图(Quantile- Quantile plot,又称分位图)4.P-P 图(Probability-Probability plot)5.经验…

【力扣】216. 组合总和 III <回溯、回溯剪枝>

【力扣】216. 组合总和 III 找出所有相加之和为 n 的 k 个数的组合,且满足下列条件: 只使用数字 1 到 9,每个数字最多使用一次,返回所有可能的有效组合的列表 。该列表不能包含相同的组合两次,组合可以以任何顺序返回…

2024王道408数据结构P144 T17

2024王道408数据结构P144 T17 思考过程 先看题目,让我们判断两棵二叉树是否相似,相似指的是以下三个方面: T1和T2都是空的二叉树或T1和T2都只有一个结点T1的左子树和T2的左子树是相似的,且T1的右子树和T2的右子树是相似的。 题…

大数据项目实战(Hadoop集群搭建)

一,搭建大数据集群环境 1.2 Hadoop集群搭建 1.2.1 jdk安装 1.下载jdk (1)在根目录下创建三个子目录以备后用。具体如下: mkdir -p /export/data mkdir -p /export/software mkdir -p /export/servers (2)下载路径: 1、官网下载地址http…

APP UI自动化测试思路总结

首先想要说明一下,APP自动化测试可能很多公司不用,但也是大部分自动化测试工程师、高级测试工程师岗位招聘信息上要求的,所以为了更好的待遇,我们还是需要花时间去掌握的,毕竟谁也不会跟钱过不去。接下来,一…

聊聊工科必备软件MATLAB

1.MATLAB的由来 MATLAB(Matrix Laboratory)最初是由美国的MathWorks公司于1980年代初开发的一种数值计算和科学数据可视化的编程环境。 MATLAB的起源可以追溯到20世纪70年代,在斯坦福大学,科学家Cleve Moler在长期从事数值计算的研…

Java流式编程详细介绍

文章目录 1. 流式编程介绍2. 过滤2.1 filter2.2 distinct2.3 limit2.4 sorted2.5 skip 3. 映射3.1 map3.2 flatmap 4 查找4.1 allMatch4.2 anyMatch4.3 noneMatch4.4 findFirst4.5 findAny 5. 归约6. 收集6.1 counting6.2 maxBy,minBy6.3 summingInt、summingLong、summingDoub…

1+X智慧安防系统实施与运维技能等级证产教融合基地建设方案

一、系统概述 1X智慧安防系统实施与运维技能等级证产教融合体系统融合了产业需求、教育培训和技能认证,通过课程培训、实训基地和实习实训等方式培养学员的技能水平,并通过技能认证来评估其能力,以满足智慧安防行业对人才的需求,并…

iMX6ULL 库移植 | Libgpiod 库的交叉编译及使用指南(linux)

GPIO口的操作,是很常见的功能。传统的GPIO sysfs接口已被弃用。自Linux 4.8起,内核提供了全新的操作gpio的方式libgpiod(C library and tools for interacting with the linux GPIO character device),当然也更高效&am…

Nuxt 菜鸟入门学习笔记三:视图

文章目录 入口文件组件 Components页面 Pages布局 Layouts Nuxt 官网地址: https://nuxt.com/ Nuxt 提供多个组件层来实现应用程序的用户界面。 入口文件 App.vue组件 Components页面 Pages布局 Layouts 下面逐一进行介绍。 入口文件 默认情况下,Nu…

vue3使用Elementplus 动态显示菜单icon不生效

1.问题描述 菜单icon由后端提供&#xff0c;直接用的字符串返回&#xff0c;前端使用遍历显示&#xff0c;发现icon不会显示 {id: 8, path:/userManagement, authName: "用户管理", icon: User, rights:[view]}, <el-menu-item :index"menu.path" v-f…

常用数据库备份方法,sql数据库备份方法

在信息时代&#xff0c;数据成为了公司的主要资产。然而&#xff0c;数据的安全性和完整性也成为企业管理的重要组成部分。因此&#xff0c;数据库备份至关重要。本文将详细介绍几种常见的数据库备份方法。 全备份 全备份是指数据库中所有数据的备份&#xff0c;包括数据文件、…

五、多表查询-4.6练习

一、准备数据 【效果展示】 emp1表&#xff08;员工表&#xff09;&#xff1a; dept1表&#xff08;部门表&#xff09;&#xff1a; salgrade表&#xff08;薪资等级表&#xff09;&#xff1a; 二、案例 1、查询员工的姓名、年龄、职位、部门信息&#xff08;隐式内连接&am…

SpringBoot + layui 框架实现一周免登陆功能

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

MySQL的日志undolog、binlog、redolog

1. 日志层次 binlog是Server层&#xff0c;undolog和redolog是innodb引擎层特有的。 2. 记录了什么 & 作用 binlog 记录了所有数据库结构变更和表数据修改的SQL日志。 主要用于数据备份和主从复制&#xff0c;比如误删数据了可以用binlog找回。 undolog 如下图&#…

Verilog 实现状态机自动售卖机

Verilog 实现状态机自动售卖机 教学视频&#xff1a;https://www.bilibili.com/video/BV1Ve411x75W?p33&spm_id_frompageDriver&vd_source19ae31dff4056e52d2729a4ca212602b 功能需求 使用1元、2元、5元面值的纸币进行支付&#xff0c;获取6元的物品&#xff0c;不设…

在el-tree懒加载中进行局部刷新

在进行懒加载的树组件中&#xff0c;操作子节点新增、修改以及删除操作时&#xff0c;需要对树组件进行局部刷新&#xff1a; /* 懒加载 */ async loadNode(node, resolve) {if (node.level 0) {// 异步加载根节点数据const data await fn({ parentId: });resolve(data);thi…