一、LEFT函数概述
SQL Server LEFT函数是用于从左侧提取一个字符串的一部分。LEFT函数需要两个参数:要从中提取字符的字符串和要提取的字符数。例如,在以下字符串“Hello, World”中,要提取前五个字符“Hello”,可以使用以下语句:
SELECT LEFT('Hello, World', 5) as Result;
输出结果为:
Result
------
Hello
通过LEFT函数,可以方便地将一个字符串的一部分提取出来,以便于进行其他操作。
二、LEFT函数语法
LEFT函数的语法如下:
LEFT ( character_expression , integer_expression )
参数说明:
- character_expression: 要从中提取字符的字符串。
- integer_expression: 要从字符串的左侧提取的字符数。
返回值:
LEFT函数返回从左侧开始的字符串的一个指定数量的字符。
三、LEFT函数用法示例
1. 提取字符串的前N个字符
通过LEFT函数,可以方便地提取字符串前N个字符,例如:
SELECT LEFT('Hello, World', 5) as Result;
输出结果为:
Result
------
Hello
其中,函数LEFT的第一个参数为字符串“Hello, World”,第二个参数为5,表示要提取的字符数。
2. 从列中提取左侧的字符
除了可以从字符串中提取左侧的字符之外,还可以从列中提取左侧的字符。例如,下面的语句演示如何从“Employees”表中的“FirstName”列中提取前三个字符:
SELECT LEFT(FirstName, 3) as FirstName FROM Employees;
输出结果如下:
FirstName
--------
Nan
Ken
Ter
Jak
其中,函数LEFT的第一个参数为“FirstName”列名,第二个参数为3,表示要提取的字符数。
3. 使用LEFT函数进行条件筛选
LEFT函数还可以用于条件筛选。例如,下面的语句选出“Employees”表中FirstName列第一个字符为“K”的记录:
SELECT FirstName, LastName FROM Employees WHERE LEFT(FirstName, 1) = 'K';
输出结果如下:
FirstName LastName
--------- ---------
Ken Sánchez
其中,函数LEFT的第一个参数为“FirstName”列名,第二个参数为1,表示要提取的字符数为1。WHERE子句中使用LEFT函数进行条件筛选。
4. 处理VARCHAR(MAX)类型的数据
在SQL Server 2008之前的版本中,LEFT函数的第二个参数必须是一个小于等于8000的整数值。对于VARCHAR(MAX)类型的数据,通常情况下,需要将其转换为VARCHAR(8000)类型之后才能使用LEFT函数进行处理。例如,下面的语句将“Employees”表中的“Notes”列转换为VARCHAR(8000)类型之后,提取前100个字符并进行输出:
SELECT LEFT(CONVERT(VARCHAR(8000), Notes), 100) as Notes FROM Employees;
输出结果如下:
Notes
--------------------------------------------------
ribute employee discount cards. $\n
Stores\n Grocery; Builder; Thrift; & Discount;\n
Management Train\r\n
{'name': 'Izumi', 'age': 42}
{'name': 'Jacob', 'age': 27}
{'name': 'Avery', 'age': 24}
其中,使用CONVERT函数将“Notes”列转换为VARCHAR(8000)类型之后,再使用LEFT函数提取前100个字符。