PostgreSQL字符串函数

1.计算字符串字符数和字符串长度的函数

  1. CHAR_LENGTH(str)返回值为字符串str所包含的字符个数。一个多字节字符算作一个单字符。

    select char_length('date'),char_length('egg');
    

    在这里插入图片描述

  2. LENGTH(str)返回值为字符串的字节长度,使用utf8编码字符集时,一个汉字是3字节,一个数字或字母算一字节。

    select length('date'),length('egg');
    

    在这里插入图片描述

2.合并字符串函数CONCAT(s1,s2,…)、CONCAT_WS(x,s1,s2,…)

  1. CONCAT(s1,s2,…)返回结果为连接参数产生的字符串。任何一个参数为NULL,返回值就为NULL。如果所有参数均为非二进制字符串,那么结果为非二进制字符串。如果自变量中含有任一二进制字符串,那么结果为一个二进制字符串。

    select concat('PostgreSQL','9.15'),concat('Postgre',NULL,'SQL');
    

    在这里插入图片描述

  2. CONCAT_WS(x,s1,s2,…)中的CONCAT_WS代表CONCAT With Separator,是CONCAT()的特殊形式。第一个参数x是其他参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符既可以是一个字符串,也可以是其他参数。如果分隔符为NULL,结果就为NULL。函数会忽略任何分隔符参数后的NULL值。

    select concat_ws('-','1st','2nd','3rd'),concat_ws('*','1st',null,'3rd');
    

    在这里插入图片描述

3.获取指定长度的字符串的函数LEFT(s,n)和RIGHT(s,n)

  1. LEFT(s,n)返回字符串s开始的最左边n个字符

    select left('football',5);
    

    在这里插入图片描述

  2. 使用RIGHT(s,n)返回字符串s最右边n个字符

    select right('football',4);
    

    在这里插入图片描述

4.填充字符串的函数LPAD(s1,len,s2)和RPAD(s1,len,s2)

  1. LPAD(s1,len,s2)返回字符串s1,其左边由字符串s2填充,填充长度为len。假如s1的长度大于len,则返回值被缩短至len字符。

    select lpad('hello',4,'??'),lpad('hello',10,'??');
    

    在这里插入图片描述

  2. RPAD(s1,len,s2)返回字符串s1,其右边被字符串s2填补至len字符长度。加入字符串s1的长度大于len,则返回值被缩短到与len字符相同的长度。

    select rpad('hello',4,'?'),rpad('hello',10,'?');
    

    在这里插入图片描述

5.删除空格的函数LTRIM(s)、RTRIM(s)和TRIM(s)

  1. LTRIM(s)返回字符串s,字符串左侧空格字符被删除

    select '( book )',concat('(',LTRIM(' book '),')');
    

    在这里插入图片描述

  2. RTRIM(s)返回字符串s,字符串右侧空格字符被删除

    select '( book )',concat('(',rtrim(' book '),')');
    

    在这里插入图片描述

  3. TRIM(s)删除字符串s两侧的空格

    select '( book )',concat('(',trim(' book '),')');
    

    在这里插入图片描述

6.删除指定字符串的函数TRIM(s1 FROM s)

select trim('xy' from 'xyboxyokxyxy');

删除字符串’xyboxyokxyxy’两端的重复字符串’xy’,而中间的’xy’并不删除,结果为‘boxyok’

7.重复生成字符串的函数REPEA(s,n)
REPEA(s,n)返回一个由重复的字符串s组成的字符串,n表示重复生成的次数。若n<=0,则返回一个空字符串;若s或n为null,则返回n。

select repeat('PostgreSQL',3);

在这里插入图片描述

select repeat(NULL,3)

在这里插入图片描述

select repeat('PostgreSQL',NULL)

在这里插入图片描述

8.替换函数REPLACE(s,s1,s2)
REPLACE(s,s1,s2)使用字符串s2代替字符串s中所有的字符串s1

select replace('xxx.PostgreSQL.com','x','w');

在这里插入图片描述

9.获取字串的函数SUBSTRING(s,n,len)
SUBSTRING(s,n,len)表示从字符串s返回一个长度为len的子字符串,起始于位置n。也可能对n使用一个负值。假如这样,则字符串的位置起始于字符串结尾的n个字符,即倒数第n个字符。

select substring('breakfast',5) as col1,substring('breakfast',5,3) as clo2,substring('lunch',-3) as clo3;

在这里插入图片描述
如果对len使用的是一个小于1的值,那么结果始终为整个字符串。

10.匹配字符串开始位置的函数POSITION(str1 IN str)
POSITION(str1 IN str)函数的作用是返回子字符串str1在字符串str中的开始位置。

select position('ball' in 'football');

在这里插入图片描述

11.字符串逆序函数

select reverse('abc');

在这里插入图片描述

你可能感兴趣的:(PostgreSQL,数据库函数)