Applies to:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Microsoft Fabric の SQL 分析エンドポイント
Microsoft Fabric のウェアハウス
指定された文字列式の、末尾の空白を除いた文字数を返します。
注
式の表記に使用されているバイト数を返すには、DATALENGTH 関数を使用します。
構文
LEN ( string_expression )
引数
string_expression
評価する文字列 式 。 string_expression には、文字データまたはバイナリ データの定数、変数、または列を使用できます。
戻り値の型
式が varchar(max)、nvarchar(max)、または varbinary(max) データ型の場合は bigint。それ以外の場合は int。
SC 照合順序を使用している場合、返される整数値は UTF-16 サロゲート ペアを 1 文字としてカウントします。 詳細については、「照合順序および 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];
注
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に配置されている従業員の名 (FirstName) と家族名 (LastName) を返します。
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