RIGHT (Transact-SQL)

适用于:yesSQL Server(所有受支持的版本)YesAzure SQL 数据库YesAzure SQL 托管实例yesAzure Synapse Analytics yesAnalytics Platform System (PDW)

返回字符串中从右边开始指定个数的字符。

Topic link iconTransact-SQL 语法约定

语法

RIGHT ( character_expression , integer_expression )  

注意

若要查看 SQL Server 2014 及更早版本的 Transact-SQL 语法,请参阅早期版本文档

参数

character_expression
字符或二进制数据的表达式。 character_expression 可以是常量、变量或列。 character_expression 可以是除 text 或 ntext 外的任何数据类型,可隐式转换为 varchar 或 nvarchar 。 否则,请使用 CAST 函数显式转换 character_expression。

备注

如果 string_expression 的类型为二进制或 varbinary ,则 RIGHT 将执行到 varchar 的隐式转换,因此不会保留二进制输入。

integer_expression
指定要返回的 character_expression 的字符数的正整数。 如果 integer_expression 为负,则返回错误。 如果 integer_expression 的数据类型为 bigint,且包含较大的值,则 character_expression 必须是较大的数据类型,如 varchar(max)。

返回类型

character_expression 为非 Unicode 字符数据类型时,返回 varchar。

character_expression 为 Unicode 字符数据类型时,返回 nvarchar。

补充字符(代理项对)

在使用 SC 排序规则时,RIGHT 函数将 UTF-16 代理项对计为一个字符。 有关详细信息,请参阅 排序规则和 Unicode 支持

示例

答:对列使用 RIGHT

以下示例返回 AdventureWorks2012 数据库中每个联系人名字中最右边的五个字符。

SELECT RIGHT(FirstName, 5) AS 'First Name'  
FROM Person.Person  
WHERE BusinessEntityID < 5  
ORDER BY FirstName;  
GO  

下面是结果集。

First Name  
----------  
Ken  
Terri  
berto  
Rob  
  
(4 row(s) affected)  
  

示例:Azure Synapse Analytics 和 Analytics Platform System (PDW)

B. 对列使用 RIGHT

以下示例返回 DimEmployee 表中每个姓氏最右边的五个字符。

-- Uses AdventureWorks  
  
SELECT RIGHT(LastName, 5) AS Name  
FROM dbo.DimEmployee  
ORDER BY EmployeeKey;  

以下为部分结果集。

Name
-----
lbert
Brown
rello
lters

C. 对字符串使用 RIGHT

以下示例使用 RIGHT 返回字符串 abcdefg 中最左边的两个字符。

SELECT RIGHT('abcdefg', 2); 

下面是结果集。

-------  
fg

另请参阅

LEFT (Transact-SQL)
LTRIM (Transact-SQL)
RTRIM (Transact-SQL)
STRING_SPLIT (Transact-SQL)
SUBSTRING (Transact-SQL)
TRIM (Transact-SQL)
CAST 和 CONVERT (Transact-SQL)
数据类型 (Transact-SQL)
字符串函数 (Transact-SQL)