玩转PostgreSQL(七):String 函数

2023-06-0610:38:30数据库教程Comments3,025 views字数 12888阅读模式

PostgreSQL String 函数

思维导图文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

玩转PostgreSQL(七):String 函数文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?PostgreSQL ASCII 函数

?前言: PostgreSQLASCII()函数返回一个ASCII字符的代码值。在UTF-8的情况下,ASCII()函数返回字符的Unicode码位。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?语法

下面说明ASCII函数的语法:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

ASCII(char)

?入参

ASCII()函数需要一个参数:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

1) char文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

char 参数是你想要获取其ASCII码的一个字符文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

如果我们将字符串传递给ASCII()函数,它将返回第一个字符的ASCII码。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?返回值

ASCII()函数返回一个表示输入字符的ASCII代码值的整数。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

对于UTF-8字符,它返回与Unicode代码点相对应的整数。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?示例

以下示例使用ASCII()函数获取字符Aa的ASCII码值:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

SELECT
    ASCII( 'A' ),
    ASCII( 'a' );

输出如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

玩转PostgreSQL(七):String 函数文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

如果我们将多个字符传递给ASCII()函数,将获得第一个字符的ASCII码,如以下示例所示:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

SELECT
    ASCII( 'ABC' );

玩转PostgreSQL(七):String 函数文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

该函数返回字母A的ASCII码,其值为65,如下所示:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

以下示例说明如何使用ASCII()函数获取UTF-8字符的Unicode码位:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

 SELECT
    ASCII( 'Ω' );

玩转PostgreSQL(七):String 函数文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?备注

要通过ASCII代码值或Unicode码位获取字符,请使用CHR()功能。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?PostgreSQL CHR 函数

?PostgreSQL CHR() 函数将整数ASCII码转换为字符,或将Unicode码位转换为UTF8字符。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?语法

下面说明CHR()函数的语法:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

CHR(num)

?入参

CHR()函数需要一个参数:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

1) num文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

num参数是转换为相应ASCII码的整数;它也可以是一个转换为UTF8字符的Unicode码位。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?返回值

CHR()函数返回与ASCII代码值或Unicode码位相对应的字符。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?示例

以下示例显示如何使用CHR()函数获取ASCII代码值为65和97的字符:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

SELECT
    CHR(65),
    CHR(97);

查询返回字符A表示CHR(65),字符a表示CHR(97):文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

下面是基于Unicode码位937获取UTF8字符的示例:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

SELECT
    CHR(937);

Unicode码位937的输出是 Ω。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?备注

要获取字符的ASCII码或UTF-8码位,请使用ASCII()函数。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?PostgreSQL Letter Case 函数

?简介: 在本节中,我们将学习如何使用LOWER,UPPER INITCAP函数将字符串表达式、列中的值等转换为小写、大写和适当大小写文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?PostgreSQL LOWER 函数

要将列中的字符串、表达式或值转换为小写,请使用LOWER函数。:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

下面说明LOWER()函数的语法:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

LOWER(string_expression)

LOWER()函数接受字符串类型 (例如char、varchar或text) 的参数,并将其转换为小写格式。如果参数是字符串可转换的,则使用CAST函数显式转换为字符串的函数。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

以下语句使用LOWER函数获取用户的小写名称:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

SELECT
	LOWER (user_name) as name
FROM
	user
ORDER BY user_name;

?PostgreSQL UPPER 函数

要将字符串转换为大写,请使用PostgreSQLUPPER函数。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

下面说明UPPER()函数的语法:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

UPPER(string_expression)

LOWER函数类似,UPPER函数接受字符串表达式或字符串可转换表达式,并将其转换为大写格式。如果参数不是字符串,则必须使用CAST函数来显式转换它。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

使用示例:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

SELECT
	UPPER  (user_name) as name
FROM
	user
ORDER BY user_name;

?PostgreSQL INITCAP 函数

INITCAP() 函数将字符串表达式转换为适当的大写或小写,每个单词的第一个字母为大写,其余字符为小写。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

下面说明INITCAP()函数的语法:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

INITCAP(string_expression)

我们经常使用INITCAP()函数用于英文标题、英文名等。例如,使用以下语句在适当情况下格式化用户名称:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

SELECT
	INITCAP (user_name) as name
FROM
	user
ORDER BY user_name;

?PostgreSQL POSITION 函数

PostgreSQL POSITION()函数返回字符串中子字符串的位置。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?简介: 在本节中,我们将学习POSITION()函数,它返回字符串中子字符串的位置。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?语法

下面说明POSITION()函数的语法:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

POSITION(substring in string)

?入参

POSITION()函数需要两个参数:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

1) substring文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

substring参数是要定位的字符串。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

2) string文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

string参数是搜索的子字符串。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?返回值

POSITION() 函数返回一个整数,它表示子字符串在字符串中的位置。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

POSITION() 如果在字符串中找不到子字符串,则函数返回零 (0)。如果 substringstring 其中一个参数是null,则返回nulll.文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?示例

以下示例返回'S'在字符串'全球总决赛S12'中位置:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

SELECT POSITION('S' IN '全球总决赛S12');

结果如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

position
----------
       6
(1 row)

注意POSITION()函数区分搜索子字符串大小写。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

请参阅以下示例:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

SELECT POSITION('s' IN '全球总决赛S12');

它返回 (0),表示字符串s不存在于'全球总决赛S12'字符串中.文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?备注

POSITION()函数返回字符串中子字符串的第一个实例的位置。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

考虑以下示例:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

SELECT POSITION('L' IN 'LPL是第一赛区');

结果是:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

 position
----------
        1
(1 row)

即使子字符串'L' 在字符串'LPL是第一赛区'中出现两次, POSITION() 函数仅返回了第一个匹配项。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?PostgreSQL Substring 函数


?简介: 在本节中,我们将学习Substring 函数,它可以从字符串中提取子字符串文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?PostgreSQL substring 函数简介

substring函数返回字符串的一部分。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

下面说明substring()函数的语法:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

SUBSTRING ( string ,start_position , length )

让我们详细介绍每个参数:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

  • string 是一个字符串数据类型,是char、varchar、text等。
  • start_position是一个整数,指定要提取子字符串的位置。如果start_position等于零,子字符串从字符串的第一个字符开始。start_position只能是正数。(尽管在其他数据库系统中,如MySQL子字符串函数可以接受start_position是负数。)
  • length是一个正整数,用于确定要从字符串中提取的字符数亮,开头为start_position。如果start_positionlength之和大于string中的字符数,substring函数返回从开始位置。length参数是可选的。如果省略length参数,substring函数将返回从start_position开始的整个字符串。

?PostgreSQL substring 示例

请参阅以下示例:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

SELECT
	SUBSTRING ('PostgreSQL', 1, 8); -- PostgreS
SELECT
	SUBSTRING ('PostgreSQL', 8); -- SQL

在第一个语句中,我们提取一个长度为8的子字符串,它从PostgreSQL字符串第一位开始。我们得到PostgreS结果。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

在第二个语句中,我们提取一个从位置8开始的子字符串,并省略length参数。子字符串是从8开始的字符串,即SQL。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

PostgreSQL提供了substring函数的另一种语法,如下所示:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

substring(string from start_position for length);

在这种形式下,PostgreSQL将三个参数合二为一。请参阅以下示例:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

SELECT
	SUBSTRING ('PostgreSQL' FROM 1 FOR 8); -- PostgreS
SELECT
	SUBSTRING ('PostgreSQL' FROM 8); -- SQL

结果与第一个示例中的结果相同。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?提取与POSIX正则表达式匹配的子字符串

除了SQL-standard substring函数之外,PostgreSQL还允许我们使用POSIX正则表达式。下面说明了substring函数使用POSIX正则表达式的语法:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

SUBSTRING(string FROM pattern)

或者,可以使用以下语法:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

SUBSTRING(string,pattern);

请注意,如果未找到匹配项,则substring函数返回null值。如果pattern包含任何括号,则substring函数返回与第一个带括号的子表达式匹配的文本。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

以下示例从字符串中提取手机号前三位 (从0到9,最多3位数字):文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

SELECT
	SUBSTRING (
		'手机号为 18888888888',
		'([0-9]{1,3})'
	) as phone_nbr;

玩转PostgreSQL(七):String 函数文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?提取与SQL正则表达式匹配的子字符串

除了POSIX正则表达式模式之外,还可以使用以下语法使用SQL正则表达式模式从字符串中提取子字符串:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

SUBSTRING(string FROM pattern FOR escape-character)

这种形式的substring 函数接受三个参数:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

  • string: 是要提取子字符串的字符串。
  • escape-character: 转义字符。
  • pattern **是一个包含在转义字符内的正则表达式,后跟一个双引号 (")。例如,如果字符#是转义字符,pattern 将是#"pattern#"。此外,pattern **必须匹配整个string,否则,substring 函数将失败并返回NULL

请参阅以下示例:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

SELECT SUBSTRING (
	'PostgreSQL'
	FROM
		'%#"S_L#"%' FOR '#'
); -- SQL

SELECT SUBSTRING (
	'369'
	FROM
		'#"S_Q#"%' FOR '#'
); -- NULLL

PostgreSQL提供了另一个名为substr函数具有substring 函数相同功能。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?总结

  • 使用PostgreSQL substring函数从字符串中提取子字符串。

?PostgreSQL SPLIT_PART 函数

?简介: 在本节中,我们将学习PostgreSQL SPLIT_PART() 函数,在指定的分隔符上拆分字符串,并返回第n个子字符串。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?语法

下面说明SPLIT_PART()函数的语法:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

SPLIT_PART(string, delimiter, position)

?入参

SPLIT_PART()函数需要三个参数:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

1) string文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

是要拆分的字符串。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

2) delimiter文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

分隔符,是用作拆分分隔符的字符串。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

3) position文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

是要返回的起始位置,从1开始。position必须是正整数。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

如果position大于拆分后的长度,SPLIT_PART()函数返回一个空字符串。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?返回值

SPLIT_PART() 函数返回拆分字符串指定位置的一部分。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?示例

请参阅以下语句:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

	SELECT SPLIT_PART('3,6,9', ',', 3);

字符串'3,6,9'在逗号分隔符 (,) 上拆分,产生3个子字符串: '3' 、 '6' 和 '9'。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

因为position参数为3,该函数返回第三个子字符串 '3'。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

这是输出:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

玩转PostgreSQL(七):String 函数

首先,创建表命名rank拥有create_time列,这是一个TIMESTAMP WITH TIME ZONE列。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

CREATE TABLE rank(
    rank_id serial PRIMARY KEY,
    rank_name varchar(255) NOT NULL,
    create_time TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP
);

插入rank表格:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

INSERT INTO rank(rank_name) 
VALUES('韩服排位精选,十职业哥混战');

以下语句使用SPLIT_PART()返回create_time的年份和月份的功能:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

 SELECT
     split_part(create_time::TEXT,'-', 1) y,
     split_part(create_time::TEXT,'-', 2) m,
 FROM
     rank;

输出如下文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

玩转PostgreSQL(七):String 函数文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?PostgreSQL REPLACE 函数

?简介: 在本节中,我们将学习PostgreSQL replace函数,函数搜索并将子字符串替换为字符串中的新子字符串。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?语法

有时,我们会有搜索一列中的字符串并将其替换为新字符串的需求,例如替换指定数字/文字、url和html脚本等等。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

要搜索所有出现的字符串并将其替换为新字符串,请使用REPLACE ()功能。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

下面说明REPLACE()函数的语法:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

REPLACE(source, old_text, new_text );

?入参

REPLACE()函数有三个参数:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

  • source是要替换的字符串。
  • old_text是要搜索和替换的文本。如果old_text在字符串中出现多次,所有出现的内容都将被替换。
  • new_text是被替换的文本。

?返回值

REPLACE() 函数返回一个被替换后的文本字符串。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?示例

请看如下示例文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

SELECT
	REPLACE ('36999', '3', '9');

玩转PostgreSQL(七):String 函数文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

如果要搜索和替换表列中的子字符串,请使用以下语法:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

UPDATE 
   table_name
SET 
   column_name = REPLACE(column,old_text,new_text)
WHERE 
   condition

?PostgreSQL REGEXP_REPLACE 函数

?简介: 在本节中,我们将学习REGEXP_REPLACE()函数替换与POSIX正则表达式匹配的字符串。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?语法

下面说明REGEXP_REPLACE()函数的语法:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

REGEXP_REPLACE(source, pattern, replacement_string,[, flags])

?入参

REGEXP_REPLACE() 函数接受四个参数:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

1) source文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

source是被替换的字符串。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

2) pattern文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

POSIX正则表达式。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

3) replacement_string文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

replacement_string 是一个作为替换条件的子字符串。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

4) flags文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

flags参数是控制函数匹配行为的一个或多个字符,例如,w允许不区分大小写的匹配,n允许匹配任何字符以及换行符。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?返回值

PostgreSQLREGEXP_REPLACE()函数返回带有子字符串的新字符串,该字符串与POSIX正则表达式模式匹配,并替换为新子字符串。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?示例

让我们看一些例子来理解REGEXP_REPLACE()函数。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

A) 调整字符顺序文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

假设有以下格式的字符串:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

str1, str2

例如, 帅哥出于某种理由,你想要调换两个字符的顺序为:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

 str2,str1

为此,可以使用REGEXP_REPLACE()函数:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

SELECT REGEXP_REPLACE('帅 哥','(.*) (.*)','\2, \1'); 

语句的输出为:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

'哥, 帅'

B) String 移除文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

假设有混合字母和数字的字符串数据,如下所示:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

gg555gg

以下语句从源字符串中删除所有字母:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

SELECT REGEXP_REPLACE('gg555gg','[[:alpha:]]','','g');

输出如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

'555'

在此示例中,文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

  • [[:alpha:]]匹配任何字母
  • '' 是替换字符串
  • 'g'指示函数删除所有字母,而不仅仅是第一个字母。

同样,我们可以使用以下语句删除源字符串中的所有数字:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

SELECT REGEXP_REPLACE('gg555gg','[[:digit:]]','','g');

输出为:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

'gggg'

C) 去除冗余文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

以下示例删除字符串中不需要的空格。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

SELECT REGEXP_REPLACE('  a   s  d  ','( ){2,}',' ');

玩转PostgreSQL(七):String 函数文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?PostgreSQL REGEXP_MATCHES 函数

?简介: 在本节中,我们将学习REGEXP_MATCHES 函数,将POSIX 正则表达式与字符串匹配并返回匹配的子字符串。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?语法

下面说明REGEXP_MATCHES()函数的语法:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

REGEXP_MATCHES(source_string, pattern [, flags])

?入参

REGEXP_MATCHES() 函数有三个参数:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

1) source文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

source 是被提取的字符串。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

2) pattern文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

pattern 是用于匹配的POSIX正则表达式。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

3) flags文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

flags 参数是控制函数的一个或多个字符。例如, i 允许你不敏感地匹配。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?返回值

REGEXP_MATCHES()函数返回字符串列表,即使结果数组仅包含单个元素。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?示例

假设,你有一个字符串如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

'Rookie尽力了JKL启动了THESHY来全杀了'

使用如下语句, REGEXP_MATCHES函数提取:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

SELECT 
    REGEXP_MATCHES('#Rookie尽力了 #JKL启动了 #THESHY来全杀了', 
         '#([A-Za-z0-9_]+)', 
        'g');

在此示例中,以下以正则表达式匹配哈希字符的任何单词开头 (#),后跟任何字母数字字符或下划线 (_)。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

#([A-Za-z0-9_]+)

g flag参数用于全局搜索。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

输出如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

玩转PostgreSQL(七):String 函数文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

结果集有三行,每一行都是数组,表示有三个匹配项。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

注意REGEXP_MATCHES()以数组而不是字符串的形式返回每一行。因为如果使用数组来捕获文本的一部分,则数组将包含组,如以下示例所示:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

SELECT REGEXP_MATCHES('ABC', '^(A)(..)$', 'g');

输出如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

regexp_matches
----------------
 {A,BC}
(1 row)

?PostgreSQL LENGTH 函数

?简介: 在本节中,我们将学习各种PostgreSQL LENGTH 函数,返回字符串的字符数或字节数。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?语法

下面说明LENGTH()函数的语法:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

LENGTH(string);

?入参

length函数接受字符串作为参数。字符串可以是以下任意一种 数据类型:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

  • character 或者char
  • character varying 或者 varchar
  • text

?返回值

length函数返回字符串中的字符数。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?示例

请参阅以下使用length函数的示例:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

SELECT
	LENGTH ('Rookie尽力了JKL启动了THESHY来全杀了'); -- 25

请注意,字符串可以包含空字符串,它不是null值。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

SELECT
	LENGTH (''); -- 0

返回零。但是,包含空格字符的字符串:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

SELECT
	LENGTH (' '); -- 1

返回1。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

如果将NULL值传递给length函数,它将返回NULL值。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

SELECT
	LENGTH (NULL); -- NULL

有时,我们可能想要测量数字的长度而不是字符串的长度。在这种情况下,可以使用CAST将数字转换为字符串并使用length函数,示例如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

SELECT
	LENGTH (CAST(369 AS TEXT)); --- 3

我们经常将length函数与其他字符串函数一起使用,例如replace,substring等,以更有效地操纵字符串。以下语句从邮件地址获取前缀和后缀,使用SUBSTRING,strpos,以及LENGTH函数。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

SELECT
	SUBSTRING (
		'info@qq.com',
		1,
		strpos(
			'info@qq.com',
			'@'
		) - 1
	) AS user_name,
	SUBSTRING (
		'info@qq.com',
		strpos(
			'info@qq.com',
			'@'
		) + 1,
		LENGTH (
			'info@qq.com'
		)
	) AS domain_name;

玩转PostgreSQL(七):String 函数文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

除了length函数之外,PostgreSQL还提供char_lengthcharacter_length提供相同功能。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?以字节和位为单位测量字符串

语法:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

OCTET_LENGTH(string);

示例:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

SELECT
	OCTET_LENGTH ('A'); -- 1 byte

它返回1个字节。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

SELECT
	OCTET_LENGTH ('€'); -- 3 bytes

它返回3个字节。但是,对于length函数,它仅返回1。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

SELECT
	LENGTH ('€'); -- 1

要测量字符串的bits数,请使用bit_length函数,语法如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

BIT_LENGTH(string);

示例:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

SELECT
	BIT_LENGTH ('A'); -- 8 bits;
  
SELECT
	BIT_LENGTH ('€'); -- 24 bits;

?PostgreSQL TRIM 函数

?简介: 在本节中,我们将学习TRIM ()函数,它可以从字符串中删除包含空格或特定字符。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

TRIM()函数非常常用,我们可以使用它来格式化数据。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?语法

下面说明TRIM ()函数的语法:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

TRIM([LEADING | TRAILING | BOTH] [characters] FROM string)

从字符串开头删除空格:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

TRIM(LEADING FROM string)

删除字符串末尾的所有空格。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

TRIM(TRAILING FROM string)

删除字符串开头和结尾的所有空格:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

TRIM(BOTH FROM string)

更简单地:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

TRIM(string)

?入参

[LEADING | TRAILING | BOTH] [characters]文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

删除策略:头、尾、首尾文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

characters文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

要删除的的字符,不传为空格文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

string文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

要删除的字符串文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?返回值

TRIM()函数返回删除指定位置传入字符之后的字符串文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?示例

以下是从字符串中删除首、尾以及首尾空格的示例。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

SELECT
	TRIM (
		LEADING
		FROM
			'  LPL 牛牛 牛  '
	),
	TRIM (
		TRAILING
		FROM
			'  LPL 牛牛 牛  '
	),
	TRIM ('  LPL 牛牛 牛  ');

玩转PostgreSQL(七):String 函数文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

以下语句从数字中删除头部的 (0)。因为TRIM()函数只接受一个string作为参数,我们必须使用CAST转换数字字符。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

SELECT
	TRIM (
		LEADING '0'
		FROM
			CAST (0007777 AS TEXT)
	); -- 7777

?备注

默认情况下,TRIM()如果未明确指定要删除的字符,则函数删除空格 ('')。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

TRIM()函数,可以从字符串的开头、结尾或开头和结尾删除指定字符串。请注意,字符串可以是以下任意一种数据类型: char, varchar, 和text.文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?PostgreSQL LTRIM, RTRIM, 和BTRIM 函数

PostgreSQL提供LTRIM, RTRIM()BTRIM函数文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

  • LTRIM()函数从字符串开头删除所有字符,默认为空格。
  • RTRIM()函数从字符串末尾删除所有字符,默认为空格。
  • BTRIM功能是组合的LTRIM()RTRIM()函数。

LTRIM()RTRIM()的语法如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

LTRIM(string, [character]);
RTRIM(string, [character]);
BTRIM(string, [character]);

这相当于以下TRIM()语法:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

TRIM(LEADING character FROM string); -- LTRIM(string,character)
TRIM(TRAILING character FROM string); -- RTRIM(string,character)
TRIM(BOTH character FROM string); -- BTRIM(string,character)

让我们看一下以下使用 LTRIM(), RTRIM() , 和BTRIM() 删除字符的功能 :文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

SELECT
	LTRIM('777clearlove777', '7'),
  RTRIM('777clearlove777', '7'),
  BTRIM('777clearlove777', '7');

玩转PostgreSQL(七):String 函数文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?使用REGEXP_REPLACE()从字符串中删除空格字符

从字符串中删除首尾空格字符的一种方法是使用REGEXP_REPLACE()功能。例如,文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

SELECT REGEXP_REPLACE('777 	', '\s+$', '');

\s+$ 表达式解释如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

  • \s : 用于空格的正则表达式类简写。
  • + 表示1个或多个连续匹配。
  • $ 表示字符串的末尾。

要删除首空格字符,请使用正则表达式^\s+文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?PostgreSQL FORMAT 函数

?简介: 在本节中,我们将学习FORMAT()函数,基于格式字符串格式化参数。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?语法

下面说明FORMAT()函数的语法:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

format(format_str, [param1[, param2] ...])

FORMAT()函数是可变的,因此,你可以把要格式化的参数作为一个标有VARIADIC关键字的数组传递。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

FORMAT()函数将数组的元素视为普通参数,将NULL视为零元素数组。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?入参

FORMAT()函数有2个入参:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

1) format_string文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

format_string参数是一个字符串,指定应如何格式化结果字符串。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

format_string由文本和格式说明符组成。文本直接复制到结果字符串,而格式说明符是要插入到结果字符串中的参数的占位符。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

下面显示了格式说明符的语法:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

%[position][flags][width]type

格式说明符由 % 开始,由类型结束,中间有 3 个可选的参数 position, flags, 和 width文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

a) position文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

position指定要在结果字符串中插入的参数. position的格式是n$,其中n是参数索引。第一个参数从1开始。如果不指定n,默认是使用参数列表中的下一个参数。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

b) flags文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

可选参数。 与宽度选项搭配使用。目前仅支持一个符号:减号(-),它表示输出左对齐。未指定宽度时,不起作用。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

c) width文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

可选参数。它用来设置此格式说明符输出的最少字符数。根据 flags的设定,对输出进行左侧填充或右侧填充空格。如果指定的宽度小于参数的宽度,则不起任何作用。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

这个参数可以使用下列中的任何一个:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

  • 一个正整数值
  • 一个星号 (*) -使用下一个函数参数作为宽度
  • 一个格式为 *n$ 的字符串-用于使用第 n 个函数参数作为宽度。

t y pe文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

必须参数。 指定格式说明符的输出的类型。支持下列的类型:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

  • s -将参数值的格式设置为简单字符串。空值被视为空字符串。
  • I -将参数值视为 SQL 标识符,必要时对其进行双引号包围。值为 null 是错误的
  • L -将参数值引起来作为 SQL 文本。空值显示为字符串 NULL,不带引号

我们经常使用 IL用于构建动态SQL语句。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

如果想使用百分号%,请按如下语法使用%%文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

2) format_arg文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

可选参数。 格式字符串中的格式说明符引用的参数。如果参数多于格式说明符,则会忽略额外的参数。参数的数量是可变的,可能为零。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?返回值

FORMAT()函数根据指定的格式字符串和参数返回一个格式化的字符串文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?示例

以下是使用FORMAT()函数的示例sql:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

SELECT FORMAT('LPL, %s','牛牛牛');

输出如下文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

'LPL, 牛牛牛'

使用flags **示例文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

SELECT FORMAT('|%10s|', '666');

输出字符串用空格和右对齐填充。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

format
--------------
 |       666|
(1 row)

要使其左对齐,请使用-作为标志:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

SELECT FORMAT('|%-10s|', '666');

输出如下文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

    format
--------------
 |666       |
(1 row)

使用position 示例文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

SELECT 
    FORMAT('%3$s 冠军, %2$s 冠军, %1$s 冠军', 'msi', '夏季赛', 's12');

输出如下文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

                format
---------------------------------------
 s12 冠军, 夏季赛 冠军, msi 冠军
(1 row)

?PostgreSQL MD5() 函数

?简介: 在本节中,我们将学习PostgreSQL md5() 函数计算一个指定的字符串的 md5 哈希值,并返回计算结果的十六进制形式。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?md5() 语法

这是 PostgreSQL md5() 函数的语法:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

md5(string)

?参数

  • string
    必填,需要计算 MD5 哈希的字符串。

?返回值

PostgreSQL md5() 函数计算一个指定的字符串的 md5 哈希值,并返回计算结果的十六进制形式。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

若参数为 NULL,该函数将返回 NULL文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?md5() 示例

这个示例说明了使用 md5() 函数生成字符串 lpl牛 的 MD5 哈希。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

SELECT md5('lpl牛') AS "md5('lpl牛')";
        md5('lpl牛')
----------------------------------
 e3b9b9009e2249f6179dd2c4926a91b3

?PostgreSQL LEFT 函数

?简介: 在本节中,我们将学习LEFT()函数,文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

在指定字符串中提取最左侧的指定数量的字符并返回。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?语法

下面说明LEFT()函数的语法:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

LEFT(string, n) 

?入参

LEFT()函数有2个入参:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

  • string
    必填。 字符串。
  • n
    必填。 需要返回的字符的数量。它可以是正数或者负数。如果它是负数,LEFT() 函数将返回除了最右侧的 -n个字符之外的其他字符。

?返回值

LEFT()函数返回文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

PostgreSQL LEFT()函数返回字符串 str 的最左侧的 n个字符。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

如果 n是负数,LEFT()函数将返回字符串中除了最右侧的 -n个字符之外的其他字符。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

如果 n大于 string的长度,LEFT()函数函数将返回 string文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

如果 n等于 0, LEFT()函数将返回空串 ''。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

若参数为 NUll,该函数将返回 NUll文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?示例

以下是使用LEFT()函数的示例sql:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

SELECT LEFT('369', 2) AS "LEFT('369', 2)";
 LEFT('369', 2) 
------------------
 36

你可以为 num 指定一个负数:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

SELECT LEFT('369', -1) AS "LEFT('369', -1)";
 LEFT('369', -3) 
-------------------
 36

这里,由于 num-1,因此,除最右侧的 1 个字符之外,其他的字符被返回。即: 36文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?备注

LEFT()函数常用语select子句或where子句中。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?PostgreSQL RIGHT 函数

?简介: 在本节中,我们将学习RIGHT()函数,文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

在指定字符串中提取最右侧的指定数量的字符并返回。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?语法

下面说明RIGHT()函数的语法:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

RIGHT(string, n) 

?入参

RIGHT()函数有2个入参:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

  • string
    必填。 字符串。
  • n
    必填。 需要返回的字符的数量。它可以是正数或者负数。如果它是负数,LEFT() 函数将返回除了最右侧的 -n个字符之外的其他字符。

?返回值

RIGHT()函数返回文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

PostgreSQL RIGHT()函数返回字符串 str 的最右侧的 n个字符。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

如果 n是负数,LEFT()函数将返回字符串中除了最左侧的 -n个字符之外的其他字符。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

如果 n大于 string的长度,RIGHT()函数函数将返回 string文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

如果 n等于 0, RIGHT()函数将返回空串 ''。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

若参数为 NUll,该函数将返回 NUll文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?示例

以下是使用RIGHT()函数的示例sql:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

SELECT RIGHT('369', 2) AS "RIGHT('369', 2)";
 RIGHT('369', 2) 
------------------
 69

你可以为 num 指定一个负数:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

SELECT RIGHT('369', -1) AS "RIGHT('369', -1)";
 RIGHT('369', -3) 
-------------------
 69

这里,由于 num 为 -1,因此,除最左侧的 1 个字符之外,其他的字符被返回。即: 69文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

?备注

RIGHT()函数常用语select子句或where子句中。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html

作者:只注视着你
来源:稀土掘金
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/45064.html
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/sjk/45064.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定