LEN (Transact-SQL)
适用于:Microsoft Fabric Microsoft Fabric
Warehouse 中的 SQL Server
Azure SQL 数据库
Azure SQL 托管实例
Azure Synapse
Analytics Analytics Platform System (PDW)
SQL Analytics 终结点
返回指定字符串表达式的字符数,其中不包含尾随空格。
注意
若要返回用于表示表达式的字节数,请使用 DATALENGTH 函数。
语法
LEN ( string_expression )
注意
若要查看 SQL Server 2014 (12.x) 及更早版本的 Transact-SQL 语法,请参阅早期版本文档。
参数
string_expression
要计算的字符串表达式。 string_expression 可以是常量、变量,也可以是字符列或二进制数据列。
返回类型
bigint(如果 expression 的数据类型为 varchar(max)、nvarchar (max) 或 varbinary(max));否则为 int。
如果使用 SC 排序规则,则返回的整数值将 UTF-16 代理项对作为单个字符计数。 有关详细信息,请参阅 排序规则和 Unicode 支持。
备注
LEN 不包括尾随空格。 如果这是一个问题,请考虑使用不会剪裁字符串的 DATALENGTH (Transact-SQL) 函数。 如果处理的是 unicode 字符串,DATALENGTH 会返回可能不等于字符数的数字。 以下示例演示 LEN 和带有尾随空格的 DATALENGTH。
DECLARE @v1 VARCHAR(40),
@v2 NVARCHAR(40);
SELECT
@v1 = 'Test of 22 characters ',
@v2 = 'Test of 22 characters ';
SELECT LEN(@v1) AS [VARCHAR LEN] , DATALENGTH(@v1) AS [VARCHAR DATALENGTH];
SELECT LEN(@v2) AS [NVARCHAR LEN], DATALENGTH(@v2) AS [NVARCHAR DATALENGTH];
注意
使用 LEN 返回编码到给定字符串表达式中的字符数,使用 DATALENGTH 返回给定字符串表达式的字节大小。 这些输出可能会因列中使用的数据类型和编码类型而异。 若要详细了解不同编码类型的存储区别,请参阅排序规则和 Unicode 支持。
示例
以下示例在 FirstName
地区的人的 Australia
中选择字符数和数据。 本示例使用 AdventureWorks 数据库。
SELECT LEN(FirstName) AS Length, FirstName, LastName
FROM Sales.vIndividualCustomer
WHERE CountryRegionName = 'Australia';
GO
示例:Azure Synapse Analytics 和 Analytics Platform System (PDW)
以下示例返回 FirstName
列中的字符数,以及位于 Australia
中的员工的姓氏和名字。
USE AdventureWorks2022
GO
SELECT DISTINCT LEN(FirstName) AS FNameLength, FirstName, LastName
FROM dbo.DimEmployee AS e
INNER JOIN dbo.DimGeography AS g
ON e.SalesTerritoryKey = g.SalesTerritoryKey
WHERE EnglishCountryRegionName = 'Australia';
下面是结果集。
FNameLength FirstName LastName
----------- --------- ---------------
4 Lynn Tsoflias
另请参阅
DATALENGTH (Transact-SQL)
CHARINDEX (Transact-SQL)
PATINDEX (Transact-SQL)
LEFT (Transact-SQL)
RIGHT (Transact-SQL)
数据类型 (Transact-SQL)
字符串函数 (Transact-SQL)