LEN (Transact-SQL)

Aplica-se a: SQL Server (todas as versões com suporte) Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics PDW (Analytics Platform System)

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.

Topic link iconConvenções de sintaxe do Transact-SQL

Sintaxe

LEN ( string_expression )  

Observação

Para ver a sintaxe do Transact-SQL para o SQL Server 2014 e versões anteriores, confira a Documentação das versões anteriores.

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 AdventureWorks2016  
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';  

Este é o conjunto de resultados.

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

Consulte 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)