適用於:SQL Server
Azure SQL 資料庫
Azure SQL 受控執行個體
Azure Synapse Analytics
分析平台系統(PDW)
Microsoft Fabric 中的 SQL 分析端點
Microsoft Fabric 中的倉儲
Microsoft Fabric 中的 SQL 資料庫
傳回指定字串運算式的字元數,但尾端空格不算。
注意
若要傳回用來表示運算式的位元組數目,請使用 DATALENGTH 函數。
語法
LEN ( string_expression )
引數
string_expression
要評估的字串 運算式 。 string_expression 可以是字元或二進位資料的常數、變數或資料行。
傳回類型
bigint 如果運算式是 varchar(max)、nvarchar(max) 或 varbinary(max) 資料類型;否則,int。
如果您使用 SC 定序,則傳回的整數值會將 UTF-16 代理配對計為單一字元。 如需詳細資訊,請參閱定序和 Unicode 支援。
備註
LEN 排除尾端空格。 如果這是問題,請考慮使用 DATALENGTH 函式,它不會修剪字串。 如果處理 Unicode 字串, DATALENGTH 則會傳回可能不等於字元數的數字。 下列範例示範 LEN 和 DATALENGTH ,並搭配尾端空格。
DECLARE @v1 AS VARCHAR (40), @v2 AS 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];
注意
用於傳回編碼成給定字串運算式的字元數,並使用 LENDATALENGTH 傳回給定字串運算式的大小 (以位元組為單位)。 這些輸出可能會因資料類型和資料行中使用的編碼類型而異。 如需不同編碼類型之間儲存差異的詳細資訊,請參閱 定序和 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中的字元數,以及位於 中FirstName員工的名字 (LastName) 和姓氏 (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