PostgreSQL常用字符串函数

news/2024/10/4 16:28:19/

PostgreSQL 提供了丰富的字符串函数,可以对字符串进行操作、处理和格式化。以下是一些常用的字符串函数及其示例:

1. LENGTH() - 计算字符串的长度

SELECT LENGTH('Hello World');  -- 返回 11

2. CONCAT() - 拼接字符串

将多个字符串连接在一起。

SELECT CONCAT('Hello', ' ', 'World');  -- 返回 'Hello World'

3. || - 拼接操作符

类似于 CONCAT(),用于连接字符串。

SELECT 'Hello' || ' ' || 'World';  -- 返回 'Hello World'

4. SUBSTRING() - 截取字符串

从字符串中提取子字符串,指定开始位置和长度。

SELECT SUBSTRING('PostgreSQL', 1, 4);  -- 返回 'Post'

5. POSITION() - 查找子字符串的位置

返回子字符串在目标字符串中的位置(从1开始)。

SELECT POSITION('gre' IN 'PostgreSQL');  -- 返回 5

6. UPPER()LOWER() - 转换大小写

  • UPPER():将字符串转换为大写。
  • LOWER():将字符串转换为小写。
SELECT UPPER('postgresql');  -- 返回 'POSTGRESQL'
SELECT LOWER('PostgreSQL');  -- 返回 'postgresql'

7. TRIM() - 去除字符串两端的空格或指定字符

可以去除字符串开头或结尾的空格,也可以去除指定字符。

-- 去除两端空格
SELECT TRIM('  Hello World  ');  -- 返回 'Hello World'-- 去除指定字符
SELECT TRIM(BOTH 'x' FROM 'xxHello Worldxx');  -- 返回 'Hello World'

8. LTRIM()RTRIM() - 去除左侧或右侧的空格或字符

  • LTRIM():去除字符串左侧的空格或指定字符。
  • RTRIM():去除字符串右侧的空格或指定字符。
-- 去除左侧空格
SELECT LTRIM('   Hello World');  -- 返回 'Hello World'-- 去除右侧空格
SELECT RTRIM('Hello World   ');  -- 返回 'Hello World'

9. REPLACE() - 替换子字符串

将字符串中的某个子字符串替换为另一个字符串。

SELECT REPLACE('Hello World', 'World', 'PostgreSQL');  -- 返回 'Hello PostgreSQL'

10. OVERLAY() - 替换子字符串的一部分

用于将字符串中的某个部分替换为另一个字符串。

SELECT OVERLAY('TxxxxT' PLACING 'es' FROM 2 FOR 4);  -- 返回 'TestT'

11. INITCAP() - 首字母大写

将字符串的每个单词的首字母转换为大写,其余部分小写。

SELECT INITCAP('hello world');  -- 返回 'Hello World'

12. LPAD()RPAD() - 填充字符串

  • LPAD():在字符串左侧填充指定字符,使其达到特定长度。
  • RPAD():在字符串右侧填充指定字符,使其达到特定长度。
-- 左侧填充
SELECT LPAD('123', 5, '0');  -- 返回 '00123'-- 右侧填充
SELECT RPAD('123', 5, '0');  -- 返回 '12300'

13. SPLIT_PART() - 分割字符串

根据指定的分隔符分割字符串,并返回指定部分。

SELECT SPLIT_PART('2024-10-01', '-', 1);  -- 返回 '2024'
SELECT SPLIT_PART('2024-10-01', '-', 2);  -- 返回 '10'

14. REVERSE() - 反转字符串

将字符串的字符顺序反转。

SELECT REVERSE('PostgreSQL');  -- 返回 'LQSergtsoP'

15. TO_CHAR() - 格式化数字或日期为字符串

可以将数字或日期格式化为指定的字符串格式。

-- 将数字格式化为带逗号的格式
SELECT TO_CHAR(1234567.89, 'FM999,999,999.00');  -- 返回 '1,234,567.89'-- 将日期格式化为字符串
SELECT TO_CHAR(CURRENT_DATE, 'YYYY-MM-DD');  -- 返回 '2024-10-01'

16. REGEXP_REPLACE() - 正则表达式替换

使用正则表达式匹配并替换字符串中的内容。

-- 使用正则表达式将连续的空格替换为单个空格
SELECT REGEXP_REPLACE('Hello   World', '\s+', ' ', 'g');  -- 返回 'Hello World'

17. REGEXP_MATCHES() - 正则表达式匹配

返回匹配正则表达式的子字符串。

-- 使用正则表达式匹配 email 地址
SELECT REGEXP_MATCHES('user@example.com', '([a-zA-Z0-9._%+-]+)@([a-zA-Z0-9.-]+\.[a-zA-Z]{2,})');
-- 返回:{user, example.com}

18. FORMAT() - 格式化字符串

使用C语言风格的格式化输出。

SELECT FORMAT('Hello %s, you are %s years old.', 'Alice', 30);  -- 返回 'Hello Alice, you are 30 years old.'

总结

这些字符串函数可以帮助处理和操作各种字符串数据,在日常开发中非常实用。根据业务需求,选择合适的函数可以有效提高操作效率。


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

相关文章

【LeetCode每日一题】——17.电话号码的字母组合

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时间频度】九【代码实现】十【提交结果】 一【题目类别】 回溯 二【题目难度】 中等 三【题目编号】 17.电话号码的字母组合 四【题目描述】 给定一个…

Spring Boot技术在足球青训管理中的创新应用

3 系统分析 3.1 可行性分析 可行性分析是该平台系统进行投入开发的基础第一步,必须对其进行可行性分析才能够降低不必要的需要从而使资源合理利用,更具有性价比和降低成本,同时也是系统平台的成功的未雨绸缪的一步。 3.1.1 技术可行性 技术可…

windows10使用bat脚本安装前后端环境之redis注册服务

首先需要搞清楚redis在本地是怎么安装配置、然后在根据如下步骤编写bat脚本: 思路 1.下载zip格式redis 2.查看windows server服务是否已安装redis 3.启动查看服务是否正常 bat脚本 echo off echo windows10 x64 server redis init REM 请求管理员权限并隐藏窗口 …

从《GTA5》的反外挂斗争看网络安全的重要性

摘要: 在网络游戏的世界里,外挂(作弊软件)一直是破坏游戏公平性和玩家体验的一大难题。作为一款深受全球玩家喜爱的游戏,《GTA5》(Grand Theft Auto V)在线模式也不例外地遭遇了外挂问题。本文将…

DataEase v2 开源代码 Windows 从0到1环境搭建

一、环境准备 功能名称 描述 其它 操作系统 Windows 数据库 Mysql8.0 开发环境 JDK17以上 本项基于的21版本开发 Maven 3.9版本 开发工具 idea2024.2版本 前端 VSCode TIPS:如果你本地有jdk8版本,需要切换21版本,请看…

css的页面布局属性

CSS Flexbox(Flexible Box Layout)是一种用于页面布局的CSS3规范,它提供了一种更加高效的方式来布置、对齐和分配容器内元素的空间,即使它们的大小是未知或者动态变化的。Flexbox很容易处理一维布局,即在一个方向上&am…

使用Python实现图形学的阴影贴图算法

目录 使用Python实现图形学的阴影贴图算法引言1. 阴影贴图算法概述2. Python实现阴影贴图算法2.1 构建基础类向量类光源类物体类 2.2 阴影贴图类2.3 渲染器类2.4 示例实现 3. 阴影贴图算法的优缺点3.1 优点3.2 缺点 4. 改进方向5. 应用场景结论 使用Python实现图形学的阴影贴图…

C++语言学习(9):《C++程序设计原理与实践》第四章笔记

这一章的标题是《计算》,想法是:计算是一个过程,是处理输入得到输出的过程。也有B站网友称之为 IPO 编程:Input, Process, Output. 其中 Process 相当于是广义上的「计算」。 计算过程的输入 如果认为程序是以计算为目的&#xf…