SQL RIGHT 函数

SQL Server RIGHT 函数从给定表达式中返回最右边的字符。RIGHT 函数使用其第二个参数来决定要返回的字符数及其语法。

SELECT RIGHT(Character_Expression, Value)
FROM [Source]
  • Character_Expression:它将从此表达式中写出最右边的字符。
  • Value:必须从 Character_Expression 中提取的字符数。

RIGHT 函数中的索引位置从 1 开始,而不是 0。在本例中,我们使用以下数据。

String Table

SQL Server RIGHT 函数示例

RIGHT 函数从给定字符串中返回指定数量的最右边字符。例如,以下查询从变量中返回最右边的 6 个和 20 个字符。

首先,我们声明了一个带有示例文本的字符表达式。接下来,我们使用它从 @Character_Expression 变量中返回最右边的六个字符。

在下面一行中,我们将第二个参数设置为 20,它大于字符串长度。因此,RIGHT 函数会打印 @Character_Expression 中的所有字母。

DECLARE @Charcater_Expression varchar(50)
SET @Charcater_Expression = 'Learn SQL Server' 

--Using Positive Integer 6
SELECT RIGHT(@Charcater_Expression, 6) AS 'SQLRIGHT' 

--Searching from specific position – 20
SELECT RIGHT(@Charcater_Expression, 20) AS 'SQLRIGHT'
RIGHT FUNCTION 1

SQL Server RIGHT 示例 2

RIGHT 函数还允许您从列值中选择最右边的字符。在此 Server 示例中,我们打印 Email 列中所有记录的最右边的九个单词。

SELECT [FirstName]
      ,[LastName]
      ,[DepartmentName]
      ,[Email]
      ,RIGHT([Email], 9) AS [SQLRIGHT]
 FROM [Employe]
RIGHT Example 2

如果观察到上面的结果,它没有完美地获取域名,因为我们使用的是固定值。在下面的 String method 示例中,我们展示了如何使用动态值作为第二个参数来准确返回域名。

如何在电子邮件中查找域名?

我们将使用 SQL right 函数查找 Email 列中存在的域名。

SELECT [FirstName]
      ,[LastName]
      ,[DepartmentName]
      ,[Email]
      ,RIGHT(
              [Email]
             ,(LEN([Email]) - CHARINDEX ('@', [Email]))
             ) AS [SQLRIGHT]
 FROM [Employe]
RIGHT FUNCTION 3

在 right 函数中,它将使用 LEN 方法查找 Email 的长度。

LEN([Email])

它返回 @ 符号的索引位置。这意味着 CHARINDEX 方法会检查每条记录中 @ 符号的索引位置。

CHARINDEX ('@', [Email])

我们将索引位置从字符串长度中减去。

(LEN([Email]) - CHARINDEX ('@', [Email]))