字符串是指在编程中以字面价值或作为变量存储的字符序列。字符串是开发中的一个基本构件,几乎任何语言都支持它作为一种数据类型。
在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中对字符串数据类型进行操纵和执行各种操作。