LEN (Transact-SQL)

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics PDW (Analytics Platform System) Ponto de extremidade de análise do SQL Warehouse no Microsoft Fabric

Retorna o número de caracteres da expressão de cadeia de caracteres especificada, excluindo espaços à direita.

Observação

Para retornar o número de bytes usado para representar uma expressão, use a função DATALENGTH.

Convenções de sintaxe de Transact-SQL

Sintaxe

LEN ( string_expression )  

Argumentos

string_expression
É a expression da cadeia de caracteres a ser avaliada. character_expression pode ser uma constante, uma variável ou uma coluna de dados de caracteres e binários.

Tipos de retorno

bigint if expression é dos tipos de dados varchar(max), nvarchar(max) ou varbinary(max); caso contrário, int.

Se você estiver usando ordenações de caracteres suplementares, o valor inteiro retornado contará os pares alternativos UTF-16 como um único caractere. Para obter mais informações, consulte Suporte a ordenações e a Unicode.

Comentários

LEN exclui os espaços à direita. Se isso for um problema, considere usar a função DATALENGTH (Transact-SQL), que não corta a cadeia de caracteres. Se estiver processando uma cadeia de caracteres unicode, DATALENGTH retornará um número que pode não ser igual ao número de caracteres. O exemplo a seguir demonstra LEN e DATALENGTH com um espaço à direita.

  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];  

Observação

Use LEN para retornar o número de caracteres codificados em determinada expressão de cadeia de caracteres e DATALENGTH para retornar o tamanho em bytes de determinada expressão de cadeia de caracteres. Essas saídas podem ser diferentes dependendo do tipo de dados e do tipo de codificação usado na coluna. Para obter mais informações sobre as diferenças de armazenamento entre diferentes tipos de codificação, confira Suporte a agrupamentos e Unicode.

Exemplos

O exemplo a seguir seleciona o número de caracteres e os dados de FirstName para pessoas localizadas na Australia. Este exemplo usa o banco de dados AdventureWorks.

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

Exemplos: Azure Synapse Analytics e PDW (Analytics Platform System)

O exemplo a seguir retorna o número de caracteres na coluna FirstName e os nomes e sobrenomes de funcionários localizados em 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';  

Veja a seguir o conjunto de resultados.

FNameLength  FirstName  LastName  
-----------  ---------  ---------------  
4            Lynn       Tsoflias

Confira também

DATALENGTH (Transact-SQL)
CHARINDEX (Transact-SQL)
PATINDEX (Transact-SQL)
LEFT (Transact-SQL)
RIGHT (Transact-SQL)
Tipos de dados (Transact-SQL)
Funções de cadeia de caracteres (Transact-SQL)