目录
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 中可以使用其他通配符,例如:
|
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;