Partilhar via


LEN (Transact-SQL)

Aplica-se a:SQL ServerBase de Dados SQL do AzureInstância Gerida do Azure SQLAzure Synapse AnalyticsSistema de Plataforma de Análise (PDW)Ponto de Extremidade de Análise SQL no Microsoft FabricArmazém no Microsoft FabricBase 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 usados para representar uma expressão, use a função DATALENGTH .

Transact-SQL convenções de sintaxe

Sintaxe

LEN ( string_expression )

Argumentos

string_expression

A expressão de cadeia de caracteres a ser avaliada. string_expression pode ser uma constante, variável ou coluna de dados binários ou de caracteres.

Tipos de devolução

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 agrupamentos SC, o valor inteiro retornado contará pares substitutos UTF-16 como um único caractere. Para obter mais informações, consulte Classificação e suporte a Unicode.

Observações

LEN exclui espaços à direita. Se isso for um problema, considere usar a função DATALENGTH , que não corta a cadeia de caracteres. Se estiver processando uma cadeia de caracteres unicode, DATALENGTH retorna 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 diferir 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, consulte Suporte a agrupamento e Unicode.

Exemplos

O exemplo a seguir seleciona o número de caracteres e os dados em FirstName para pessoas localizadas em 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 and Analytics Platform System (PDW)

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

Aqui está o conjunto de resultados.

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