举例说明SQL服务器字符串函数

212 阅读4分钟

字符串是指在编程中以字面价值或作为变量存储的字符序列。字符串是开发中的一个基本构件,几乎任何语言都支持它作为一种数据类型。

在SQL中,你会更多地与字符串值一起工作。因此,应该学习一些关于如何操作和处理字符串值的功能。

在这篇文章中,我们将探讨由SQL Server提供的字符串函数,并了解如何使用它们。

什么是字符串函数?

字符串函数是指将一个字符串作为输入,并根据指定的操作返回一个字符串或数值。

下面是SQL Server中一些最常见和有用的字符串函数。

上位和下位函数

upper()和lower()函数允许你将一个指定的字符串转换为各自的字符大小写。upper()函数将指定的字符串转换为大写字母,而lower()函数则将字符串转换为小写字母。

一个例子如所示:

SELECT UPPER('linuxhint')
SELECT LOWER('LINUXHINT');

该例查询返回的输出结果如图所示。

---------
LINUXHINT
---------
linuxhint

协程函数

concat()函数允许你将两个指定的字符串值连接起来。一个例子如图所示:

SELECT concat('linux', 'hint');

该查询应该返回如图所示的输出:

---------
linuxhint
(1 ROW affected)

Len函数

len函数返回指定字符串中的字符数。例子:

SELECT len('linuxhint');

该函数以整数形式返回字符数为:

-----------
9
(1 ROW affected)

反向函数

反转函数以相反的顺序返回指定的字符串。例如:

SELECT reverse('linuxhint');

输出如图所示:

---------
tnihxunil
(1 ROW affected)

Ascii函数

SQL Server中的ascii函数返回指定字符串中第一个字符的ASCII代码。

SELECT ascii('linuxhint'), ascii('x');

返回值如下:

----------- -----------
108         120
(1 ROW affected)

Char函数

这个函数接受一个ascii值并返回其字符表示。例如:

SELECT CHAR(120);

输出:

----
x
(1 ROW affected)

子串函数

substring()函数从设定的起点提取一个指定长度的子串。其语法如下。

SUBSTRING('string', start_location, substring_length);

一个例子的用法如图所示:

SELECT SUBSTRING('Welcome to linuxhint', 12, 9);

注意起始位置是基于1的。该函数返回的子串为:

---------
linuxhint
(1 ROW affected)

修剪函数

trim函数从一个指定的字符串中删除所有前导和尾部的空格字符。一个例子的用法如图所示。

SELECT TRIM('   SQL Server string functions  ');

上面的查询返回上面删除了前导和尾部空格的字符串。

--------------------------------
SQL Server string functions
(1 ROW affected)

Charindex函数

charindex函数从指定的搜索位置返回一个定义的字符串的索引位置。同样,索引也是基于1的。

使用实例:

SELECT charindex('functions', 'SQL Server string functions  ');

该函数返回与指定字符串匹配的起始索引为。

-----------
19
(1 ROW affected)

String_split函数

SQL Server中的string_split根据定义的分隔符,将一组字符串转换为行。一个例子的用法如图所示。

SELECT VALUE FROM string_split('MongoDB,MySQL,PostgreSQL', ',');

该函数返回用逗号分隔的字符串行,如图所示:

VALUE
--------------------------
MongoDB
MySQL
PostgreSQL
(3 ROWS affected)

Replicate 函数

这个函数返回一个指定的字符串,并重复设定的次数。例如,要重复一个字符串5次,我们可以这样做。

SELECT replicate('linuxhint ', 5);

我们应该得到一个输出为

--------------------------------------------------
linuxhint linuxhint linuxhint linuxhint linuxhint
(1 ROW affected)

左和右函数

左和右函数分别从一个字符串的左边和右边开始提取一些字符。

请看下面的例子:

SELECT LEFT('linuxhint ', 5);
SELECT RIGHT('linuxhint', 4);
  • 第一个例子将在左边方向从字符串中提取5个字符。
  • 第二个例子在右边提取4个字符。

结果的数值如图所示:

-----
linux
----
hint

Soundex函数

soundex函数根据指定字符串的说话方式返回一个四字符代码。

比如说:

SELECT soundex('linux');
SELECT soundex('linus');

返回值为:

-----
L520
L520

这两个定义的字符串听起来都差不多;返回值也是如上所示。

空间函数

空格函数返回一组重复的空格。一个例子如图所示。

SELECT 'This' + SPACE(1) + ' is linuxhint'

上面的查询返回。

------------------
This  IS linuxhint

总结

在这篇文章中,我们介绍了SQL Server中流行和有用的字符串函数。这些函数允许你在SQL Server中对字符串数据类型进行操纵和执行各种操作。