自学内容网 自学内容网

PostgreSQL常用字符串函数

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.'

总结

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


原文地址:https://blog.csdn.net/lunan/article/details/142695996

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!