SQL LEFT 函数

SQL Server 的 LEFT 函数用于从给定的表达式中返回最左边的字符。此函数使用第二个参数来决定应返回多少个最左边的字符,其语法如下。

SELECT LEFT (Character_Expression, Value)
FROM [Source]
  • Character_Expression:它将从此表达式中写入最左边的字符。
  • Value:您希望从 Character_Expression 中提取多少个字符?

LEFT 函数中的索引位置从 1 开始,而不是 0。在此示例中,我们使用下面显示的数据

SQL Server LEFT 函数示例

LEFT 函数从给定的字符串返回指定数量的最左边字符。以下查询返回最前面的 3 个和 20 个字符。

在第一个语句中,我们使用 LEFT 函数从 @Character_Expression 变量中返回五个最左边的字符。

在下一行中,我们将 20 赋值给第二个参数,它大于字符串长度。因此,它将从 @Character_Expression 返回所有字母

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

--Using Positive Integer 3
SELECT LEFT(@Charcater_Expression, 5) AS 'SQLLEFT' 

--Searching from specific position – 20
SELECT LEFT(@Charcater_Expression, 20) AS 'SQLLEFT' 
LEFT Function Example 1

LEFT 函数示例 2

SQL Server 的 Left 函数还允许您从列值中选择最左边的字符。在此 Server 示例中,我们将返回 Department Name 列中所有记录的前四个单词。

SELECT [FirstName]
      ,[LastName]
      ,[DepartmentName]
      ,LEFT([DepartmentName], 4) AS [SQLLEFT]
 FROM [Employe]

如果您观察第二条记录,在 Sr. 后面有一个空格。让我们使用 CHARINDEX 函数查找 Email 列中 @ 符号的索引位置。接下来,此 字符串方法将提取直到 @ 符号的最左边字母。

SELECT [FirstName]
      ,[LastName]
      ,[DepartmentName]
      ,[Email]
      ,LEFT(
              [Email]
      ,CHARINDEX ('@', [Email]) - 1
            ) AS [SQLLEFT]
 FROM [Employe]
LEFT FUNCTION on Email Column 3

下面的 LEFT 语句返回 @ 符号的索引位置。这表明 CHARINDEX 方法会在每条记录中查找 @ 符号的索引位置。

CHARINDEX ('@', [Email])

我们使用下面的语句将索引位置减 1。如果您忽略此操作,输出也会包含 @ 符号。

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