LEFT (Transact-SQL)

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

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

Topic link iconTransact-SQL 语法约定

语法

LEFT ( 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,则 LEFT 将执行到 varchar 的隐式转换,因此不会保留二进制输入 。

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

integer_expression 参数将 UTF-16 代理项字符计为一个字符。

返回类型

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

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

备注

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

示例

A. 带列使用 LEFT

以下示例返回 AdventureWorks2012 数据库的 Product 表中每个产品名称中最左边的五个字符。

SELECT LEFT(Name, 5)   
FROM Production.Product  
ORDER BY ProductID;  
GO  

B. 带字符串使用 LEFT

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

SELECT LEFT('abcdefg',2);  
GO  

下面是结果集。

--   
ab   
  
(1 row(s) affected)  

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

C. 带列使用 LEFT

以下示例返回每个产品名中最左边的五个字符。

-- Uses AdventureWorks  
  
SELECT LEFT(EnglishProductName, 5)   
FROM dbo.DimProduct  
ORDER BY ProductKey;  

D. 带字符串使用 LEFT

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

-- Uses AdventureWorks  
  
SELECT LEFT('abcdefg',2) FROM dbo.DimProduct;  

下面是结果集。

--   
ab  

另请参阅

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