LEN(Transact-SQL)

적용 대상:SQL 서버Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsMicrosoft Fabric 의 SQL 분석 엔드포인트Microsoft Fabric 의 웨어하우스Microsoft Fabric의 SQL 데이터베이스

후행 공백을 제외하고 지정된 문자열 식의 문자 수를 반환합니다.

참고

식을 표시하는 데 사용된 바이트 수를 반환하려면 DATALENGTH 함수를 사용하세요.

Transact-SQL 구문 표기 규칙

구문

LEN ( string_expression )

인수

string_expression

평가할 문자열 식 입니다. string_expression은 문자나 이진 데이터의 상수, 변수 또는 열일 수 있습니다.

반환 형식

식이varchar(max), nvarchar(max) 또는 varbinary(max) 데이터 형식인 경우 bigint; 그렇지 않으면 int입니다.

SC 데이터 정렬을 사용하는 경우 반환된 정수 값은 UTF-16 서로게이트 쌍을 단일 문자로 계산합니다. 자세한 내용은 데이터 정렬 및 유니코드 지원을 참조하십시오.

설명

LEN 는 후행 공백을 제외합니다. 문제가 있는 경우 문자열을 트리밍하지 않는 DATALENGTH 함수를 사용하는 것이 좋습니다. 유니코드 문자열 DATALENGTH 을 처리하는 경우 문자 수와 같지 않을 수 있는 숫자를 반환합니다. 다음 예제에서는 LENDATALENGTH 후행 공백을 보여 줍니다.

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를 사용하여 지정된 문자열 식의 크기를 바이트 단위로 반환합니다. 이러한 출력은 열에 사용되는 데이터 형식 및 인코딩 형식에 따라 다를 수 있습니다. 서로 다른 인코딩 형식 간의 스토리지 차이점에 대한 자세한 내용은 데이터 정렬 및 유니코드 지원을 참조하세요.

예

다음 예에서는 FirstName에 있는 사람의 Australia 데이터 및 문자 수를 선택합니다. 이 예에서는 AdventureWorks 데이터베이스를 사용합니다.

SELECT LEN(FirstName) AS Length,
       FirstName,
       LastName
FROM Sales.vIndividualCustomer
WHERE CountryRegionName = 'Australia';
GO

예제: Azure Synapse Analytics

다음 예제에서는 열의 문자 수와 해당 열 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