Compartilhar via


LEN (Transact-SQL)

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzureAzure Synapse AnalyticsAnalytics Platform System (PDW)Ponto de extremidade de análise de SQL no Microsoft FabricDepósito no Microsoft FabricBanco de dados SQL 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 expressão de 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 se a expressão for dos tipos de dados varchar(max), nvarchar(max)ou varbinary(max ; caso contrário, int.

Se você estiver usando ordenações SC, o valor inteiro retornado conta pares alternativos UTF-16 como um único caractere. Para obter mais informações, consulte Suporte para ordenação e Unicode.

Comentários

LEN exclui espaços à direita. Se esse for um problema, considere o uso da função DATALENGTH , 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 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];

Observação

Use LEN para retornar o número de caracteres codificados em uma determinada expressão de cadeia de caracteres e DATALENGTH para retornar o tamanho em bytes para uma determinada expressão de cadeia de caracteres. Essas saídas podem ser diferentes dependendo do tipo de dados e do tipo de codificação usados na coluna. Para obter mais informações sobre as diferenças de armazenamento entre diferentes tipos de codificação, consulte o suporte a Ordenação 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 o nome (FirstName) e o nome da família (LastName) dos 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