SQL Server 函数参考手册(SQL Server 字符串函数)

目录

SQL Server ASCII() 函数

SQL Server CHAR() 函数

SQL Server CHARINDEX() 函数

SQL Server CONCAT() 函数

SQL Server +连接运算符

SQL Server CONCAT_WS() 函数

SQL Server DATALENGTH() 函数

SQL Server DIFFERENCE() 函数

SQL Server FORMAT() 函数

SQL Server LEFT() 函数

SQL Server LEN() 函数

SQL Server LOWER() 函数

SQL Server LTRIM() 函数

SQL Server NCHAR() 函数

SQL Server PATINDEX() 函数

SQL Server QUOTENAME() 函数

SQL Server REPLACE() 函数

SQL Server REPLICATE() 函数

SQL Server REVERSE() 函数

SQL Server RIGHT() 函数

SQL Server RTRIM() 函数

SQL Server SOUNDEX() 函数

SQL Server SPACE() 函数

SQL Server STR() 函数

SQL Server STUFF() 函数

SQL Server SUBSTRING() 函数

SQL Server TRANSLATE() 函数

SQL Server TRIM() 函数

SQL Server UNICODE() 函数

SQL Server UPPER() 函数


SQL Server ASCII() 函数

【实例】

返回"CustomerName"中第一个字符的 ASCII 值:

SELECT ASCII(CustomerName) AS NumCodeOfFirstChar
FROM Customers;

【定义和用法】

ASCII() 函数返回特定字符的 ASCII 值。

【语法】

ASCII(character)

【参数值】

参数 描述
character 必需。要为其返回 ASCII 值的字符。 如果输入多个字符,则只返回第一个字符的值

【技术细节】

适用于: SQL Server (starting with 2008), Azure SQL Database, Azure SQL Data Warehouse, Parallel Data Warehouse

SQL Server CHAR() 函数

【实例】

根据数字码65返回字符:

SELECT CHAR(65) AS CodeToCharacter;

【定义和用法】

CHAR() 函数根据 ASCII 码返回字符。

【语法】

CHAR(code)

【参数值】

参数 描述
code 必需。返回字符的ASCII码

【技术细节】

适用于: SQL Server (starting with 2008), Azure SQL Database, Azure SQL Data Warehouse, Parallel Data Warehouse

SQL Server CHARINDEX() 函数

【实例】

在字符串"Customer"中搜索"t",返回位置:

SELECT CHARINDEX('t', 'Customer') AS MatchPosition;

【定义和用法】

CHARINDEX() 函数在字符串中搜索子字符串,并返回位置。

如果没有找到子字符串,这个函数返回0。

注:此函数执行不区分大小写的搜索。

【语法】

CHARINDEX(substring, string, start)

【参数值】

参数 描述
substring 必需。要搜索的子字符串
string 必需。要搜索的字符串
start 可选。搜索将启动的位置(如果您不想从S TRING 开头开始)。 string中的第一个位置为1

【技术细节】

适用于: SQL Server (starting with 2008), Azure SQL Database, Azure SQL Data Warehouse, Parallel Data Warehouse

【实例】

在字符串"Customer"中搜索"OM",返回位置:

SELECT CHARINDEX('OM', 'Customer') AS MatchPosition;

【实例】

在字符串"Customer"中搜索"mer",并返回位置(从位置 3 开始):

SELECT CHARINDEX('mer', 'Customer', 3) AS MatchPosition;

SQL Server CONCAT() 函数

【实例】

将两个字符串相加:

SELECT CONCAT('W3Schools', '.com');

【定义和用法】

CONCAT() 函数将两个或多个字符串相加。

注: 另请参见 Concat 与 + 运算符 和 CONCAT_WS()。

【语法】

CONCAT(string1, string2, ...., string_n)

【参数值】

参数 描述
string1, string2, string_n 必需。要加在一起的字符串

【技术细节】

适用于: SQL Server (starting with 2012), Azure SQL Database, Azure SQL Data Warehouse, Parallel Data Warehouse

【实例】

将3个字符串加在一起:

SELECT CONCAT('SQL', ' is', ' fun!');

【实例】

将字符串加在一起(每个字符串用空格分隔):

SELECT CONCAT('SQL', ' ', 'is', ' ', 'fun!');

SQL Server +连接运算符

【实例】

一起添加2个字符串:

SELECT 'W3Schools' + '.com';

【定义和用法】

+ 运算符允许您将两个或多个字符串相加。

注: 另见 CONCAT() 和 CONCAT_WS() 功能。

【语法】

string1 + string2 + string_n

【参数值】

参数 描述
string1, string2, string_n 必需。要加在一起的字符串

【技术细节】

适用于: SQL Server (starting with 2005), Azure SQL Database, Azure SQL Data Warehouse, Parallel Data Warehouse

【实例】

将3个字符串加在一起:

SELECT 'SQL' + ' is' + ' fun!';

【实例】

将字符串加在一起(每个字符串用空格分隔):

SELECT 'SQL' + ' ' + 'is' + ' ' + 'fun!';

SQL Server CONCAT_WS() 函数

【实例】

将字符串加在一起。 采用 '.' 分隔连接的字符串值:

SELECT CONCAT_WS('.', 'www', 'W3Schools', 'com');

【定义和用法】

concat_ws()函数与分隔符一起添加两个或更多个字符串。

注: 另请参见 concat() 和 + 运算符。

【语法】

CONCAT_WS(separator, string1, string2, ...., string_n)

【参数值】

参数 描述
separator 必需。要使用的分隔符
string1, string2, string_n 必需。要加在一起的字符串

【技术细节】

适用于: SQL Server (starting with 2017), Azure SQL Database, Azure SQL Data Warehouse

【实例】

将字符串加在一起。 使用 '-' 分隔串联的字符串值:

SELECT CONCAT_WS('-', 'SQL', ' is', ' fun!');

SQL Server DATALENGTH() 函数

【实例】

返回表达式的长度(以字节为单位):

SELECT DATALENGTH('W3Schools.cn');

【定义和用法】

DATALENGTH() 函数返回用于表示表达式的字节数。

注: DATALENGTH() 函数在计算表达式长度时计算前导空格和尾随空格。另见LEN()函数。

【语法】

DATALENGTH(expression)

【参数值】

参数 描述
expression 必需。返回长度的数据类型。 如果 expression 为 NULL,则返回 NULL

【技术细节】

适用于: SQL Server (starting with 2008), Azure SQL Database, Azure SQL Data Warehouse, Parallel Data Warehouse

【实例】

返回表达式的长度(以字节为单位)(计算前导和尾随空格):

SELECT DATALENGTH('   W3Schools.cn   ');

【实例】

返回表达式的长度(以字节为单位):

SELECT DATALENGTH('2017-08');

SQL Server DIFFERENCE() 函数

【实例】

比较两个 SOUNDEX 值,并返回一个整数:

SELECT DIFFERENCE('Juice', 'Jucy');

【定义和用法】

DIFFERENCE() 函数比较两个 SOUNDEX 值,并返回一个整数。 整数值表示两个 SOUNDEX 值的匹配,从 0 到 4。

0 表示 SOUNDEX 值之间的相似性较弱或没有相似性。 4 表示高度相似或 SOUNDEX 值相同。

注:同时查看 SOUNDEX() 函数。

【语法】

DIFFERENCE(expression, expression)

【参数值】

参数 描述
expression, expression 必需。要比较的两个表达式。 可以是常量、变量或列

【技术细节】

适用于: SQL Server (starting with 2008), Azure SQL Database, Azure SQL Data Warehouse, Parallel Data Warehouse

【实例】

比较两个 SOUNDEX 值,并返回一个整数:

SELECT DIFFERENCE('Juice', 'Banana');

SQL Server FORMAT() 函数

【实例】

格式化日期:

DECLARE @d DATETIME = '12/01/2018';
SELECT FORMAT (@d, 'd', 'en-US') AS 'US English Result',
               FORMAT (@d, 'd', 'no') AS 'Norwegian Result',
               FORMAT (@d, 'd', 'zu') AS 'Zulu Result';

【定义和用法】

FORMAT() 函数使用指定格式(以及 SQL Server 2017 中的可选区域性)格式化值。

使用 FORMAT() 函数来格式化日期/时间值和数字值。 对于一般数据类型转换,请使用 CAST() 或 CONVERT()。

【语法】

FORMAT(value, format, culture)

【参数值】

参数 描述
value 必需。要格式化的值
format 必需。格式模式
culture 可选。 Specifies a culture (from SQL Server 2017)

【技术细节】

适用于: SQL Server (starting with 2012), Azure SQL Database

【实例】

格式化数字:

SELECT FORMAT(123456789, '##-##-#####');

SQL Server LEFT() 函数

【实例】

从字符串中提取3个字符(从左开始):

SELECT LEFT('SQL Tutorial', 3) AS ExtractString;

【定义和用法】

LEFT() 函数从字符串中提取多个字符(从左开始)。

【语法】

LEFT(string, number_of_chars)

【参数值】

参数 描述
string 必需。 The string to extract from
number_of_chars 必需。要提取的字符数。 如果数字超过string中的字符数,则返回string

【技术细节】

适用于: SQL Server (starting with 2008), Azure SQL Database, Azure SQL Data Warehouse, Parallel Data Warehouse

【实例】

从"CustomerName"中的文本中提取 5 个字符; 列(从左开始):

SELECT LEFT(CustomerName, 5) AS ExtractString
FROM Customers;

【实例】

从字符串中提取100个字符(从左开始):

SELECT LEFT('SQL Tutorial', 100) AS ExtractString;

SQL Server LEN() 函数

【实例】

返回一个字符串的长度:

SELECT LEN('W3Schools.cn');

【定义和用法】

LEN() 函数返回字符串的长度。

注: 计算长度时不包括字符串末尾的尾随空格。 但是,在计算长度时会包括字符串开头的前导空格。同时查看 DATALENGTH() 函数。

【语法】

LEN(string)

【参数值】

参数 描述
string 必需。返回长度的字符串。 如果 string 为 NULL,则返回 NULL

【技术细节】

适用于: SQL Server (starting with 2008), Azure SQL Database, Azure SQL Data Warehouse, Parallel Data Warehouse

【实例】

返回字符串的长度(计算前导空格,但不计算尾随空格):

SELECT LEN('   W3Schools.cn   ');

【实例】

返回一个字符串的长度:

SELECT LEN('2017-08');

SQL Server LOWER() 函数

【实例】

将文本转换为小写:

SELECT LOWER('SQL Tutorial is FUN!');

【定义和用法】

LOWER() 函数将字符串转换为小写。

注: 还要查看 UPPER() 函数。

【语法】

LOWER(text)

【参数值】

参数 描述
text 必需。要转换的字符串

【技术细节】

适用于: SQL Server (starting with 2008), Azure SQL Database, Azure SQL Data Warehouse, Parallel Data Warehouse

【实例】

将"CustomerName"中的文本转换为小写:

SELECT LOWER(CustomerName) AS LowercaseCustomerName
FROM Customers;

SQL Server LTRIM() 函数

【实例】

从字符串中删除前导空格:

SELECT LTRIM('     SQL Tutorial') AS LeftTrimmedString;

【定义和用法】

LTRIM() 函数从字符串中删除前导空格。

注:还请查看 RTRIM() 函数。

【语法】

LTRIM(string)

【参数值】

参数 描述
string 必需。删除前导空格的字符串

【技术细节】

适用于: SQL Server (starting with 2008), Azure SQL Database, Azure SQL Data Warehouse, Parallel Data Warehouse

SQL Server NCHAR() 函数

【实例】

根据数字代码65返回Unicode字符:

SELECT NCHAR(65) AS NumberCodeToUnicode;

【定义和用法】

NCHAR() 函数根据数字代码返回 Unicode 字符。

【语法】

NCHAR(number_code)

【参数值】

参数 描述
number_code 必需。Unicode 标准中用于返回字符的数字代码

【技术细节】

适用于: SQL Server (starting with 2008), Azure SQL Database, Azure SQL Data Warehouse, Parallel Data Warehouse

SQL Server PATINDEX() 函数

【实例】

返回模式在字符串中的位置:

SELECT PATINDEX('%schools%', 'W3Schools.cn');

【定义和用法】

PATINDEX() 函数返回模式在字符串中的位置。

如果未找到该模式,则此函数返回 0。

注: 搜索不区分大小写,string 中的第一个位置是 1。

【语法】

PATINDEX(%pattern%, string)

【参数值】

参数 描述
%pattern% 必需。要找到的模式。 它必须被 % 包围。 pattern 中可以使用其他通配符,例如:
  • % - 匹配任意长度的任意字符串(包括0长度)
  • _ - 匹配一个字符
  • [] - 匹配括号中的任何字符,例如 [xyz]
  • [^] - 匹配任何不在括号内的字符,例如 [^xyz]
string 必需。要搜索的字符串

【技术细节】

适用于: SQL Server (starting with 2008), Azure SQL Database, Azure SQL Data Warehouse, Parallel Data Warehouse

【实例】

返回模式在字符串中的位置:

SELECT PATINDEX('%s%com%', 'W3Schools.cn');

【实例】

返回模式在字符串中的位置:

SELECT PATINDEX('%[ol]%', 'W3Schools.cn');

【实例】

返回模式在字符串中的位置:

SELECT PATINDEX('%[z]%', 'W3Schools.cn');

SQL Server QUOTENAME() 函数

【实例】

返回带有括号分隔符的 Unicode 字符串(默认):

SELECT QUOTENAME('abcdef');

【定义和用法】

QUOTENAME() 函数返回一个带有分隔符的 Unicode 字符串,以使该字符串成为有效的 SQL Server 分隔标识符。

【语法】

QUOTENAME(string, quote_char)

【参数值】

参数 描述
string 必需。一串 Unicode 字符数据。 限制为 128 个字符
quote_char 可选。 用作分隔符的单字符字符串。 可以是单引号 ( ' )、左括号或右括号 ( [] )、双引号 ( " )、左括号或右括号 ( () )、大于或小于符号 ( >< ; )、左大括号或右大括号 ( {} ) 或反引号 ( ` )。 如果未指定 quote_char,则使用括号。

【技术细节】

适用于: SQL Server (starting with 2008), Azure SQL Database, Azure SQL Data Warehouse, Parallel Data Warehouse

【实例】

返回一个带括号分隔符的 Unicode 字符串:

SELECT QUOTENAME('abcdef', '()');

SQL Server REPLACE() 函数

【实例】

将 "T" 替换为 "M":

SELECT REPLACE('SQL Tutorial', 'T', 'M');

【定义和用法】

REPLACE() 函数将字符串中所有出现的子字符串替换为新的子字符串。

注:搜索不区分大小写。同时查看 STUFF() 函数。

【语法】

REPLACE(string, old_string, new_string)

【参数值】

参数 描述
string 必需。原字符串
old_string 必需。要替换的字符串
new_string 必需。新的替换字符串

【技术细节】

适用于: SQL Server (starting with 2008), Azure SQL Database, Azure SQL Data Warehouse, Parallel Data Warehouse

【实例】

将 "SQL" 替换为 "HTML":

SELECT REPLACE('SQL Tutorial', 'SQL', 'HTML');

【实例】

将 "a" 替换为 "c":

SELECT REPLACE('ABC ABC ABC', 'a', 'c');

SQL Server REPLICATE() 函数

【实例】

重复一个字符串:

SELECT REPLICATE('SQL Tutorial', 5);

【定义和用法】

REPLICATE() 函数将字符串重复指定的次数。

【语法】

REPLICATE(string, integer)

【参数值】

参数 描述
string 必需。要重复的字符串
integer 必需。重复字符串的次数

【技术细节】

适用于: SQL Server (starting with 2008), Azure SQL Database, Azure SQL Data Warehouse, Parallel Data Warehouse

【实例】

将 CustomerName 中的文本重复两次:

SELECT REPLICATE(CustomerName, 2)
FROM Customers;

SQL Server REVERSE() 函数

【实例】

反转一个字符串:

SELECT REVERSE('SQL Tutorial');

【定义和用法】

REVERSE() 函数反转字符串并返回结果。

【语法】

REVERSE(string)

【参数值】

参数 描述
string 必需的。 要反转的字符串

【技术细节】

适用于: SQL Server (starting with 2008), Azure SQL Database, Azure SQL Data Warehouse, Parallel Data Warehouse

【实例】

反转 CustomerName 中的文本:

SELECT REVERSE(CustomerName)
FROM Customers;

SQL Server RIGHT() 函数

【实例】

从字符串中提取3个字符(从右开始):

SELECT RIGHT('SQL Tutorial', 3) AS ExtractString;

【定义和用法】

RIGHT() 函数从字符串中提取多个字符(从右开始)。

【语法】

RIGHT(string, number_of_chars)

【参数值】

参数 描述
string 必需。要从中提取的字符串
number_of_chars 必需。要提取的字符数。 如果 number_of_chars > string,返回string

【技术细节】

适用于: SQL Server (starting with 2008), Azure SQL Database, Azure SQL Data Warehouse, Parallel Data Warehouse

【实例】

从 "CustomerName" 列的文本中提取5个字符(从右开始):

SELECT RIGHT(CustomerName, 5) AS ExtractString
FROM Customers;

【实例】

从一个字符串中提取100个字符(从右开始):

SELECT RIGHT('SQL Tutorial', 100) AS ExtractString;

SQL Server RTRIM() 函数

【实例】

从字符串中删除尾随空格:

SELECT RTRIM('SQL Tutorial     ') AS RightTrimmedString;

【定义和用法】

RTRIM() 函数从字符串中删除尾随空格。

注:还请查看 LTRIM() 函数。

【语法】

RTRIM(string)

【参数值】

参数 描述
string 必需。删除尾随空格的字符串

【技术细节】

适用于: SQL Server (starting with 2008), Azure SQL Database, Azure SQL Data Warehouse, Parallel Data Warehouse

SQL Server SOUNDEX() 函数

【实例】

评估两个字符串的相似度,并返回一个四字符代码:

SELECT SOUNDEX('Juice'), SOUNDEX('Jucy');

【定义和用法】

SOUNDEX() 函数返回一个四字符代码来评估两个表达式的相似性。

注: SOUNDEX() 根据字符串在说出时的发音方式将字符串转换为四字符代码。同时查看 DIFFERENCE() 函数。

【语法】

SOUNDEX(expression)

【参数值】

参数 描述
expression 必需。要评估的表达式。 可以是常量、变量或列

【技术细节】

适用于: SQL Server (starting with 2008), Azure SQL Database, Azure SQL Data Warehouse, Parallel Data Warehouse

【实例】

评估两个字符串的相似度,并返回一个四字符代码:

SELECT SOUNDEX('Juice'), SOUNDEX('Banana');

SQL Server SPACE() 函数

【实例】

返回一个有 10 个空格的字符串:

SELECT SPACE(10);

【定义和用法】

SPACE() 函数返回指定数量的空格字符的字符串。

SPACE(number)

【参数值】

参数 描述
number 必需。返回的空格数

【技术细节】

适用于: SQL Server (starting with 2008), Azure SQL Database, Azure SQL Data Warehouse, Parallel Data Warehouse

SQL Server STR() 函数

【实例】

将数字作为字符串返回:

SELECT STR(185);

【定义和用法】

STR() 函数以字符串形式返回一个数字。

【语法】

STR(number, length, decimals)

【参数值】

参数 描述
number 必需。要转换为字符串的数字
length 可选。 返回字符串的长度。 默认值为 10
decimals 可选。在返回字符串中显示的小数位数。 默认值为 0

【技术细节】

适用于: SQL Server (starting with 2008), Azure SQL Database, Azure SQL Data Warehouse, Parallel Data Warehouse

【实例】

将数字作为字符串返回:

SELECT STR(185.5);

【实例】

将数字作为字符串返回:

SELECT STR(185.476, 6, 2);

SQL Server STUFF() 函数

【实例】

从字符串中删除3个字符,从位置1开始,然后在位置1插入"HTML":

SELECT STUFF('SQL Tutorial', 1, 3, 'HTML');

【定义和用法】

STUFF() 函数删除字符串的一部分,然后将另一部分插入到字符串中,从指定位置开始。

注:同时查看 REPLACE() 函数。

【语法】

STUFF(string, start, length, new_string)

【参数值】

参数 描述
string 必需。要修改的字符串
start 必需。string中开始删除部分字符的位置
length 必需。要从 string 中删除的字符数
new_string 必需。在 start 位置插入 string 的新字符串

【技术细节】

适用于: SQL Server (starting with 2008), Azure SQL Database, Azure SQL Data Warehouse, Parallel Data Warehouse

【实例】

从字符串中删除 1 个字符,从位置 13 开始,然后在位置 13 处插入 " is fun!":

SELECT STUFF('SQL Tutorial!', 13, 1, ' is fun!');

SQL Server SUBSTRING() 函数

【实例】

从字符串中提取 3 个字符,从位置 1 开始:

SELECT SUBSTRING('SQL Tutorial', 1, 3) AS ExtractString;

【定义和用法】

SUBSTRING() 函数从字符串中提取一些字符。

【语法】

SUBSTRING(string, start, length)

【参数值】

参数 描述
string 必需。要从中提取的字符串
start 必需。起始位置。 string 中的第一个位置是 1
length 必需。要提取的字符数。 必须是正数

【技术细节】

适用于: SQL Server (starting with 2008), Azure SQL Database, Azure SQL Data Warehouse, Parallel Data Warehouse

【实例】

从 "CustomerName" 列中提取 5 个字符,从位置 1 开始:

SELECT SUBSTRING(CustomerName, 1, 5) AS ExtractString
FROM Customers;

【实例】

从字符串中提取 100 个字符,从位置 1 开始:

SELECT SUBSTRING('SQL Tutorial', 1, 100) AS ExtractString;

SQL Server TRANSLATE() 函数

【实例】

将第二个参数中指定的字符转换为第三个参数中指定的字符后,从第一个参数返回字符串:

SELECT TRANSLATE('Monday', 'Monday', 'Sunday'); /* Results in Sunday */

【定义和用法】

将第二个参数中指定的字符转换为第三个参数中指定的字符后,TRANSLATE() 函数从第一个参数返回字符串。

注:如果 characters 和 translations 的长度不同,则 TRANSLATE() 函数将返回错误。

【语法】

TRANSLATE(string, characters, translations)

【参数值】

参数 描述
string 必需。输入字符串
characters 必需。应该替换的字符
translations 必需。新字符

【技术细节】

适用于: SQL Server (starting with 2017)

【实例】

将第二个参数中指定的字符转换为第三个参数中指定的字符后,从第一个参数返回字符串:

SELECT TRANSLATE('3*[2+1]/{8-4}', '[]{}', '()()'); /* Results in 3*(2+1)/(8-4) */

SQL Server TRIM() 函数

【实例】

从字符串中删除前导和尾随空格:

SELECT TRIM('     SQL Tutorial!     ') AS TrimmedString;

【定义和用法】

TRIM() 函数从字符串的开头或结尾删除空格字符或其他指定字符。

默认情况下,TRIM() 函数从字符串中删除前导和尾随空格。

注: 还要查看 LTRIM() 和 RTRIM() 功能。

【语法】

TRIM([characters FROM ]string)

【参数值】

参数 描述
characters FROM 可选。 要删除的特定字符
string 必需。要从中删除空格或字符的字符串

【技术细节】

适用于: SQL Server (starting with 2017), Azure SQL Database

【实例】

从字符串中删除字符和空格:

SELECT TRIM('#! ' FROM '    #SQL Tutorial!    ') AS TrimmedString;

SQL Server UNICODE() 函数

【实例】

返回一个整数值(Unicode 值),用于输入表达式的第一个字符:

SELECT UNICODE('Atlanta');

【定义和用法】

UNICODE() 函数为输入表达式的第一个字符返回一个整数值(Unicode 值)。

【语法】

UNICODE(character_expression)

【参数值】

参数 描述
character_expression 必需。一个 nchar 或 varchar 表达式

【技术细节】

适用于: SQL Server (starting with 2008), Azure SQL Database, Azure SQL Data Warehouse, Parallel Data Warehouse

【实例】

返回一个整数值(Unicode 值),用于输入表达式的第一个字符:

SELECT UNICODE(CustomerName) AS UnicodeOfFirstChar
FROM Customers;

SQL Server UPPER() 函数

【实例】

将文本转换为大写:

SELECT UPPER('SQL Tutorial is FUN!');

【定义和用法】

UPPER() 函数将字符串转换为大写。

注: 还要查看 LOWER() 函数。

【语法】

UPPER(text)

【参数值】

参数 描述
text 必需。要转换的字符串

【技术细节】

适用于: SQL Server (starting with 2008), Azure SQL Database, Azure SQL Data Warehouse, Parallel Data Warehouse

【实例】

将"customername"中的文本转换为大写:

SELECT UPPER(CustomerName) AS UppercaseCustomerName
FROM Customers;

你可能感兴趣的:(SQL系列教程,SQL,教程,资料,笔记)