SQL Server 字符串函数

17 Mar 2025 | 6 分钟阅读

字符串函数**接受字符串值作为输入,并返回字符串值,无论数据类型**(字符串或数字)。SQL Server 中有几个内置的字符串函数,开发人员可以使用它们有效地处理字符数据。SQL Server 中的字符串方法对于处理字符串数据类型非常有用。SQL Server 使用各种数据类型(如 varchar、nvarchar 和 char)存储字符串和字符数据。因此,字符串函数可用于有效地获取所需和精确的结果。

下图将显示 SQL Server 中使用的所有字符串函数

SQL Server String Functions

本文将介绍 SQL Server 中最常见的字符串函数,并结合示例解释每个函数。下表列出了每个函数及其简要说明

函数名描述
ASCII此函数显示字符的 ASCII 值。
CHAR此函数将指定的整数代码(ASCII)转换为单字节字符。
CHARINDEX此函数在第二个字符表达式中找到字符表达式时,返回第一个表达式的起始位置。
CONCAT此函数通过连接两个或多个字符串来返回单个字符串。
CONCAT_WS此函数将多个字符串连接成一个,并用第一个位置指定的定界符分隔它们。
差集此函数通过比较两个字符串 SOUNDEX() 值来返回整数值。
FORMAT此函数用于将字符串的文本格式更改为任何其他格式。
LEFT此函数从字符串的左侧返回指定数量字符的子字符串。
LEN此函数返回字符串中的字符数,包括尾随空格。
LOWER此函数用于将大写字符转换为小写。
LTRIM此函数从给定字符串中删除所有前导空格后返回一个字符串。
NCHAR此函数用于根据 UNICODE 标准获取具有提供的整数代码的 Unicode 字符。
PATINDEX此函数返回字符串中模式第一次出现的起始位置。如果未找到字符串,则返回零。
QUOTENAME此函数返回包含定界符的 Unicode 字符串,将输入字符串转换为有效的定界标识符。
REPLACE此函数用于将指定字符串中子字符串的所有出现替换为另一个字符串值。
REPLICATE此函数将字符串重复指定的次数。
REVERSE此函数以相反的顺序显示字符字符串。
RIGHT此函数从字符串的右侧返回指定数量字符的子字符串。
RTRIM此函数从给定字符串中删除所有尾随空格后返回一个字符串。
SOUNDEX它用于使用四字符 (SOUNDEX) 代码计算两个字符串的相似性。
SPACE此函数用于查找重复空格的字符串。
STR此函数用于返回从数字数据转换而来的字符数据。
STRING_AGG此函数连接字符串表达式的值并在其间插入分隔符值。它不会在字符串末尾添加分隔符。
STRING_ESCAPE此函数转义字符串中的特殊字符并生成一个包含已转义字符的新字符串。
STRING_SPLIT它是一个表值函数,它使用您选择的分隔符将字符串分成子字符串行。
STUFF此函数删除字符串的一部分,并将其替换为从指定位置开始的另一个子字符串。
SUBSTRING此函数从字符串中提取一个子字符串,该子字符串从特定位置开始,以特定长度结束。
TRANSLATE此函数将多个一对一翻译组合成一个操作。
TRIM此函数在从给定字符串中删除所有前导和尾随空格后返回一个新字符串。
UNICODE此函数返回由 Unicode 标准定义的字符的整数值。
UPPER此函数将小写字符转换为大写。

让我们看一些最常见的字符串函数示例。

示例 1:此示例将返回字符“A”和“B”的数字 ASCII 值。

执行该语句将返回以下结果

SQL Server String Functions

示例 2:此示例将在 “Hello Javatpoint” 中搜索字符串 “Javatpoint”,如果找到,则返回给定字符串中特定字符串表达式的索引。

执行该语句将返回以下结果。这里第一次搜索字符串 Javatpoint 返回 7,但是当我们指定起始位置为 8 时,它返回 0,因为在此索引之后没有找到任何出现。

SQL Server String Functions

示例 3:此示例将使用 CONCAT() 函数,该函数接受两个或多个输入字符串,并在连接后将这些字符串返回为一个输出。

执行查询将显示以下输出

SQL Server String Functions

示例 4:此示例使用 SOUNDEX() 函数,该函数接受一个字符串作为输入,并根据其发音生成一个四字符字符串。它将代码的第一个字符转换为大写,并成为输入字符串的第一个字符。代码的其余字符是表示表达式字母的数字。

这是结果:

SQL Server String Functions

从结果中我们可以看到,SOUNDEX() 方法对“J”和“Ja”产生相同的结果,因为字符“a”被忽略(因为 A、O、U、E、I、Y、H、W 在不是第一个字符时被忽略)。此外,由于 SOUNDEX() 函数只需要前四个字符,因此 Javatpoint 和 Javatpoint Noida 的结果是相同的。

示例 5:此示例使用 DIFFERENCE() 函数,该函数测量两个字符串的相似性。

此语句给出以下输出

SQL Server String Functions

这里,我们可以看到 DIFFERENCE() 函数返回值为 4,因为 SOUNDEX() 函数对 Hello 和 Hello World 返回相同的值,这表明它们都基于 SOUNDEX() 值。另一方面,DIFFERENCE() 函数对 Hello 和 Bicycle 返回 1,这表明它们不相似。

示例 6:此示例使用 LEFT()RIGHT() 函数从字符串的左侧或右侧提取特定数量的字符。

执行该语句将返回以下结果

SQL Server String Functions

示例 7:此示例使用 LOWER()UPPER() 更改输入字符串的字符大小写。LOWER() 和 UPPER() 函数分别用于将字母大小写修改为小写和大写。

执行该语句将返回以下结果

SQL Server String Functions

示例 8:此示例将使用 LTRIM()RTRIM() 函数删除输入字符串左侧或右侧的额外空格。

执行该语句将返回以下结果,我们看到字符串 javatpoint 左侧和右侧的空格已被删除

SQL Server String Functions

示例 9:此示例使用 QUOTENAME() 函数,该函数返回包含定界符的 Unicode 字符串,将输入字符串转换为有效的定界标识符。

执行该语句将返回以下输出

SQL Server String Functions

示例 10:此示例使用 REPLICATE() 函数将字符串重复指定的次数。

执行该语句将返回以下结果

SQL Server String Functions

结论

本文全面概述了 SQL Server 的几个内置字符串函数,以及一些示例和图片。