LEN (Transact-SQL)
適用於:SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Analytics Platform System (PDW) Microsoft Fabric 的 SQL 端點分析 Microsoft Fabric 的倉儲
傳回指定字串運算式的字元數,但尾端空格不算。
注意
若要傳回用來表示運算式的位元組數目,請使用 DATALENGTH 函數。
語法
LEN ( string_expression )
引數
string_expression
這是要評估的字串運算式。 string_expression 可以是字元或二進位資料的常數、變數或資料行。
傳回型別
若 expression 的資料類型為 varchar(max)、nvarchar(max)或 varbinary(max),則為 bigint,否則為 int。
如果您使用 SC 定序,傳回的整數值也將 UTF-16 Surrogate 字組視為單一字元。 如需詳細資訊,請參閱 Collation and Unicode Support。
備註
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)