玩转PostgreSQL(七):String 函数

2023年 7月 10日 40.9k 0

PostgreSQL String 函数

思维导图

玩转PostgreSQL(七):String 函数

?PostgreSQL ASCII 函数

?前言: PostgreSQLASCII()函数返回一个ASCII字符的代码值。在UTF-8的情况下,ASCII()函数返回字符的Unicode码位。

?语法

下面说明ASCII函数的语法:

ASCII(char)

?入参

ASCII()函数需要一个参数:

1) char

char 参数是你想要获取其ASCII码的一个字符

如果我们将字符串传递给ASCII()函数,它将返回第一个字符的ASCII码。

?返回值

ASCII()函数返回一个表示输入字符的ASCII代码值的整数。

对于UTF-8字符,它返回与Unicode代码点相对应的整数。

?示例

以下示例使用ASCII()函数获取字符Aa的ASCII码值:

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

输出如下:

玩转PostgreSQL(七):String 函数

如果我们将多个字符传递给ASCII()函数,将获得第一个字符的ASCII码,如以下示例所示:

SELECT
    ASCII( 'ABC' );

玩转PostgreSQL(七):String 函数

该函数返回字母A的ASCII码,其值为65,如下所示:

以下示例说明如何使用ASCII()函数获取UTF-8字符的Unicode码位:

 SELECT
    ASCII( 'Ω' );

玩转PostgreSQL(七):String 函数

?备注

要通过ASCII代码值或Unicode码位获取字符,请使用CHR()功能。

?PostgreSQL CHR 函数

?PostgreSQL CHR() 函数将整数ASCII码转换为字符,或将Unicode码位转换为UTF8字符。

?语法

下面说明CHR()函数的语法:

CHR(num)

?入参

CHR()函数需要一个参数:

1) num

num参数是转换为相应ASCII码的整数;它也可以是一个转换为UTF8字符的Unicode码位。

?返回值

CHR()函数返回与ASCII代码值或Unicode码位相对应的字符。

?示例

以下示例显示如何使用CHR()函数获取ASCII代码值为65和97的字符:

SELECT
    CHR(65),
    CHR(97);

查询返回字符A表示CHR(65),字符a表示CHR(97):

下面是基于Unicode码位937获取UTF8字符的示例:

SELECT
    CHR(937);

Unicode码位937的输出是 Ω。

?备注

要获取字符的ASCII码或UTF-8码位,请使用ASCII()函数。

?PostgreSQL Letter Case 函数

?简介: 在本节中,我们将学习如何使用LOWER,UPPER INITCAP函数将字符串表达式、列中的值等转换为小写、大写和适当大小写

?PostgreSQL LOWER 函数

要将列中的字符串、表达式或值转换为小写,请使用LOWER函数。:

下面说明LOWER()函数的语法:

LOWER(string_expression)

LOWER()函数接受字符串类型 (例如char、varchar或text) 的参数,并将其转换为小写格式。如果参数是字符串可转换的,则使用CAST函数显式转换为字符串的函数。

以下语句使用LOWER函数获取用户的小写名称:

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

?PostgreSQL UPPER 函数

要将字符串转换为大写,请使用PostgreSQLUPPER函数。

下面说明UPPER()函数的语法:

UPPER(string_expression)

LOWER函数类似,UPPER函数接受字符串表达式或字符串可转换表达式,并将其转换为大写格式。如果参数不是字符串,则必须使用CAST函数来显式转换它。

使用示例:

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

?PostgreSQL INITCAP 函数

INITCAP() 函数将字符串表达式转换为适当的大写或小写,每个单词的第一个字母为大写,其余字符为小写。

下面说明INITCAP()函数的语法:

INITCAP(string_expression)

我们经常使用INITCAP()函数用于英文标题、英文名等。例如,使用以下语句在适当情况下格式化用户名称:

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

?PostgreSQL POSITION 函数

PostgreSQL POSITION()函数返回字符串中子字符串的位置。

?简介: 在本节中,我们将学习POSITION()函数,它返回字符串中子字符串的位置。

?语法

下面说明POSITION()函数的语法:

POSITION(substring in string)

?入参

POSITION()函数需要两个参数:

1) substring

substring参数是要定位的字符串。

2) string

string参数是搜索的子字符串。

?返回值

POSITION() 函数返回一个整数,它表示子字符串在字符串中的位置。

POSITION() 如果在字符串中找不到子字符串,则函数返回零 (0)。如果 substringstring 其中一个参数是null,则返回nulll.

?示例

以下示例返回'S'在字符串'全球总决赛S12'中位置:

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

结果如下:

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

❗注意POSITION()函数区分搜索子字符串大小写。

请参阅以下示例:

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

它返回 (0),表示字符串s不存在于'全球总决赛S12'字符串中.

?备注

POSITION()函数返回字符串中子字符串的第一个实例的位置。

考虑以下示例:

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

结果是:

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

即使子字符串'L' 在字符串'LPL是第一赛区'中出现两次, POSITION() 函数仅返回了第一个匹配项。

?PostgreSQL Substring 函数

?简介: 在本节中,我们将学习Substring 函数,它可以从字符串中提取子字符串

?PostgreSQL substring 函数简介

substring函数返回字符串的一部分。

下面说明substring()函数的语法:

SUBSTRING ( string ,start_position , length )

让我们详细介绍每个参数:

  • 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 示例

请参阅以下示例:

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

在第一个语句中,我们提取一个长度为8的子字符串,它从PostgreSQL字符串第一位开始。我们得到PostgreS结果。

在第二个语句中,我们提取一个从位置8开始的子字符串,并省略length参数。子字符串是从8开始的字符串,即SQL。

PostgreSQL提供了substring函数的另一种语法,如下所示:

substring(string from start_position for length);

在这种形式下,PostgreSQL将三个参数合二为一。请参阅以下示例:

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

结果与第一个示例中的结果相同。

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

除了SQL-standard substring函数之外,PostgreSQL还允许我们使用POSIX正则表达式。下面说明了substring函数使用POSIX正则表达式的语法:

SUBSTRING(string FROM pattern)

或者,可以使用以下语法:

SUBSTRING(string,pattern);

请注意,如果未找到匹配项,则substring函数返回null值。如果pattern包含任何括号,则substring函数返回与第一个带括号的子表达式匹配的文本。

以下示例从字符串中提取手机号前三位 (从0到9,最多3位数字):

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

玩转PostgreSQL(七):String 函数

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

除了POSIX正则表达式模式之外,还可以使用以下语法使用SQL正则表达式模式从字符串中提取子字符串:

SUBSTRING(string FROM pattern FOR escape-character)

这种形式的substring 函数接受三个参数:

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

请参阅以下示例:

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

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

PostgreSQL提供了另一个名为substr函数具有substring 函数相同功能。

?总结

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

?PostgreSQL SPLIT_PART 函数

?简介: 在本节中,我们将学习PostgreSQL SPLIT_PART() 函数,在指定的分隔符上拆分字符串,并返回第n个子字符串。

?语法

下面说明SPLIT_PART()函数的语法:

SPLIT_PART(string, delimiter, position)

?入参

SPLIT_PART()函数需要三个参数:

1) string

是要拆分的字符串。

2) delimiter

分隔符,是用作拆分分隔符的字符串。

3) position

是要返回的起始位置,从1开始。position必须是正整数。

如果position大于拆分后的长度,SPLIT_PART()函数返回一个空字符串。

?返回值

SPLIT_PART() 函数返回拆分字符串指定位置的一部分。

?示例

请参阅以下语句:

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

字符串'3,6,9'在逗号分隔符 (,) 上拆分,产生3个子字符串: '3' 、 '6' 和 '9'。

因为position参数为3,该函数返回第三个子字符串 '3'。

这是输出:

玩转PostgreSQL(七):String 函数

首先,创建表命名rank拥有create_time列,这是一个TIMESTAMP WITH TIME ZONE列。

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

插入rank表格:

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

以下语句使用SPLIT_PART()返回create_time的年份和月份的功能:

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

输出如下

玩转PostgreSQL(七):String 函数

?PostgreSQL REPLACE 函数

?简介: 在本节中,我们将学习PostgreSQL replace函数,函数搜索并将子字符串替换为字符串中的新子字符串。

?语法

有时,我们会有搜索一列中的字符串并将其替换为新字符串的需求,例如替换指定数字/文字、url和html脚本等等。

要搜索所有出现的字符串并将其替换为新字符串,请使用REPLACE ()功能。

下面说明REPLACE()函数的语法:

REPLACE(source, old_text, new_text );

?入参

REPLACE()函数有三个参数:

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

?返回值

REPLACE() 函数返回一个被替换后的文本字符串。

?示例

请看如下示例

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

玩转PostgreSQL(七):String 函数

如果要搜索和替换表列中的子字符串,请使用以下语法:

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

?PostgreSQL REGEXP_REPLACE 函数

?简介: 在本节中,我们将学习REGEXP_REPLACE()函数替换与POSIX正则表达式匹配的字符串。

?语法

下面说明REGEXP_REPLACE()函数的语法:

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

?入参

REGEXP_REPLACE() 函数接受四个参数:

1) source

source是被替换的字符串。

2) pattern

POSIX正则表达式。

3) replacement_string

replacement_string 是一个作为替换条件的子字符串。

4) flags

flags参数是控制函数匹配行为的一个或多个字符,例如,w允许不区分大小写的匹配,n允许匹配任何字符以及换行符。

?返回值

PostgreSQLREGEXP_REPLACE()函数返回带有子字符串的新字符串,该字符串与POSIX正则表达式模式匹配,并替换为新子字符串。

?示例

让我们看一些例子来理解REGEXP_REPLACE()函数。

A) 调整字符顺序

假设有以下格式的字符串:

str1, str2

例如, 帅哥出于某种理由,你想要调换两个字符的顺序为:

 str2,str1

为此,可以使用REGEXP_REPLACE()函数:

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

语句的输出为:

'哥, 帅'

B) String 移除

假设有混合字母和数字的字符串数据,如下所示:

gg555gg

以下语句从源字符串中删除所有字母:

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

输出如下:

'555'

在此示例中,

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

同样,我们可以使用以下语句删除源字符串中的所有数字:

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

输出为:

'gggg'

C) 去除冗余

以下示例删除字符串中不需要的空格。

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

玩转PostgreSQL(七):String 函数

?PostgreSQL REGEXP_MATCHES 函数

?简介: 在本节中,我们将学习REGEXP_MATCHES 函数,将POSIX 正则表达式与字符串匹配并返回匹配的子字符串。

?语法

下面说明REGEXP_MATCHES()函数的语法:

REGEXP_MATCHES(source_string, pattern [, flags])

?入参

REGEXP_MATCHES() 函数有三个参数:

1) source

source 是被提取的字符串。

2) pattern

pattern 是用于匹配的POSIX正则表达式。

3) flags

flags 参数是控制函数的一个或多个字符。例如, i 允许你不敏感地匹配。

?返回值

REGEXP_MATCHES()函数返回字符串列表,即使结果数组仅包含单个元素。

?示例

假设,你有一个字符串如下:

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

使用如下语句, REGEXP_MATCHES函数提取:

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

在此示例中,以下以正则表达式匹配哈希字符的任何单词开头 (#),后跟任何字母数字字符或下划线 (_)。

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

g flag参数用于全局搜索。

输出如下:

玩转PostgreSQL(七):String 函数

结果集有三行,每一行都是数组,表示有三个匹配项。

注意REGEXP_MATCHES()以数组而不是字符串的形式返回每一行。因为如果使用数组来捕获文本的一部分,则数组将包含组,如以下示例所示:

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

输出如下:

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

?PostgreSQL LENGTH 函数

?简介: 在本节中,我们将学习各种PostgreSQL LENGTH 函数,返回字符串的字符数或字节数。

?语法

下面说明LENGTH()函数的语法:

LENGTH(string);

?入参

length函数接受字符串作为参数。字符串可以是以下任意一种 数据类型:

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

?返回值

length函数返回字符串中的字符数。

?示例

请参阅以下使用length函数的示例:

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

请注意,字符串可以包含空字符串,它不是null值。

SELECT
	LENGTH (''); -- 0

返回零。但是,包含空格字符的字符串:

SELECT
	LENGTH (' '); -- 1

返回1。

如果将NULL值传递给length函数,它将返回NULL值。

SELECT
	LENGTH (NULL); -- NULL

有时,我们可能想要测量数字的长度而不是字符串的长度。在这种情况下,可以使用CAST将数字转换为字符串并使用length函数,示例如下:

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

我们经常将length函数与其他字符串函数一起使用,例如replace,substring等,以更有效地操纵字符串。以下语句从邮件地址获取前缀和后缀,使用SUBSTRING,strpos,以及LENGTH函数。

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 函数

除了length函数之外,PostgreSQL还提供char_lengthcharacter_length提供相同功能。

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

语法:

OCTET_LENGTH(string);

示例:

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

它返回1个字节。

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

它返回3个字节。但是,对于length函数,它仅返回1。

SELECT
	LENGTH ('€'); -- 1

要测量字符串的bits数,请使用bit_length函数,语法如下:

BIT_LENGTH(string);

示例:

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

?PostgreSQL TRIM 函数

?简介: 在本节中,我们将学习TRIM ()函数,它可以从字符串中删除包含空格或特定字符。

TRIM()函数非常常用,我们可以使用它来格式化数据。

?语法

下面说明TRIM ()函数的语法:

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

从字符串开头删除空格:

TRIM(LEADING FROM string)

删除字符串末尾的所有空格。

TRIM(TRAILING FROM string)

删除字符串开头和结尾的所有空格:

TRIM(BOTH FROM string)

更简单地:

TRIM(string)

?入参

[LEADING | TRAILING | BOTH] [characters]

删除策略:头、尾、首尾

characters

要删除的的字符,不传为空格

string

要删除的字符串

?返回值

TRIM()函数返回删除指定位置传入字符之后的字符串

?示例

以下是从字符串中删除首、尾以及首尾空格的示例。

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

玩转PostgreSQL(七):String 函数

以下语句从数字中删除头部的 (0)。因为TRIM()函数只接受一个string作为参数,我们必须使用CAST转换数字字符。

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

?备注

默认情况下,TRIM()如果未明确指定要删除的字符,则函数删除空格 ('')。

TRIM()函数,可以从字符串的开头、结尾或开头和结尾删除指定字符串。请注意,字符串可以是以下任意一种数据类型: char, varchar, 和text.

?PostgreSQL LTRIM, RTRIM, 和BTRIM 函数

PostgreSQL提供LTRIM, RTRIM()BTRIM函数

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

LTRIM()RTRIM()的语法如下:

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

这相当于以下TRIM()语法:

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() 删除字符的功能 :

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

玩转PostgreSQL(七):String 函数

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

从字符串中删除首尾空格字符的一种方法是使用REGEXP_REPLACE()功能。例如,

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

s+$ 表达式解释如下:

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

要删除首空格字符,请使用正则表达式^s+

?PostgreSQL FORMAT 函数

?简介: 在本节中,我们将学习FORMAT()函数,基于格式字符串格式化参数。

?语法

下面说明FORMAT()函数的语法:

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

FORMAT()函数是可变的,因此,你可以把要格式化的参数作为一个标有VARIADIC关键字的数组传递。

FORMAT()函数将数组的元素视为普通参数,将NULL视为零元素数组。

?入参

FORMAT()函数有2个入参:

1) format_string

format_string参数是一个字符串,指定应如何格式化结果字符串。

format_string由文本和格式说明符组成。文本直接复制到结果字符串,而格式说明符是要插入到结果字符串中的参数的占位符。

下面显示了格式说明符的语法:

%[position][flags][width]type

格式说明符由 % 开始,由类型结束,中间有 3 个可选的参数 position, flags, 和 width

a) position

position指定要在结果字符串中插入的参数. position的格式是n$,其中n是参数索引。第一个参数从1开始。如果不指定n,默认是使用参数列表中的下一个参数。

b) flags

可选参数。 与宽度选项搭配使用。目前仅支持一个符号:减号(-),它表示输出左对齐。未指定宽度时,不起作用。

c) width

可选参数。它用来设置此格式说明符输出的最少字符数。根据 flags的设定,对输出进行左侧填充或右侧填充空格。如果指定的宽度小于参数的宽度,则不起任何作用。

这个参数可以使用下列中的任何一个:

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

t y pe

必须参数。 指定格式说明符的输出的类型。支持下列的类型:

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

我们经常使用 IL用于构建动态SQL语句。

如果想使用百分号%,请按如下语法使用%%

2) format_arg

可选参数。 格式字符串中的格式说明符引用的参数。如果参数多于格式说明符,则会忽略额外的参数。参数的数量是可变的,可能为零。

?返回值

FORMAT()函数根据指定的格式字符串和参数返回一个格式化的字符串

?示例

以下是使用FORMAT()函数的示例sql:

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

输出如下

'LPL, 牛牛牛'

使用flags **示例

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

输出字符串用空格和右对齐填充。

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

要使其左对齐,请使用-作为标志:

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

输出如下

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

使用position 示例

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

输出如下

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

?PostgreSQL MD5() 函数

?简介: 在本节中,我们将学习PostgreSQL md5() 函数计算一个指定的字符串的 md5 哈希值,并返回计算结果的十六进制形式。

?md5() 语法

这是 PostgreSQL md5() 函数的语法:

md5(string)

?参数

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

?返回值

PostgreSQL md5() 函数计算一个指定的字符串的 md5 哈希值,并返回计算结果的十六进制形式。

若参数为 NULL,该函数将返回 NULL

?md5() 示例

这个示例说明了使用 md5() 函数生成字符串 lpl牛 的 MD5 哈希。

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

?PostgreSQL LEFT 函数

?简介: 在本节中,我们将学习LEFT()函数,

在指定字符串中提取最左侧的指定数量的字符并返回。

?语法

下面说明LEFT()函数的语法:

LEFT(string, n) 

?入参

LEFT()函数有2个入参:

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

?返回值

LEFT()函数返回

PostgreSQL LEFT()函数返回字符串 str 的最左侧的 n个字符。

如果 n是负数,LEFT()函数将返回字符串中除了最右侧的 -n个字符之外的其他字符。

如果 n大于 string的长度,LEFT()函数函数将返回 string

如果 n等于 0, LEFT()函数将返回空串 ''。

若参数为 NUll,该函数将返回 NUll

?示例

以下是使用LEFT()函数的示例sql:

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

你可以为 num 指定一个负数:

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

这里,由于 num-1,因此,除最右侧的 1 个字符之外,其他的字符被返回。即: 36

?备注

LEFT()函数常用语select子句或where子句中。

?PostgreSQL RIGHT 函数

?简介: 在本节中,我们将学习RIGHT()函数,

在指定字符串中提取最右侧的指定数量的字符并返回。

?语法

下面说明RIGHT()函数的语法:

RIGHT(string, n) 

?入参

RIGHT()函数有2个入参:

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

?返回值

RIGHT()函数返回

PostgreSQL RIGHT()函数返回字符串 str 的最右侧的 n个字符。

如果 n是负数,LEFT()函数将返回字符串中除了最左侧的 -n个字符之外的其他字符。

如果 n大于 string的长度,RIGHT()函数函数将返回 string

如果 n等于 0, RIGHT()函数将返回空串 ''。

若参数为 NUll,该函数将返回 NUll

?示例

以下是使用RIGHT()函数的示例sql:

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

你可以为 num 指定一个负数:

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

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论