Compartilhar via


LEN (Transact-SQL)

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzureAzure Synapse AnalyticsPDW (Analytics Platform System)Ponto de extremidade de análise do SQLWarehouse 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