Condividi tramite


LEN (Transact-SQL)

Si applica a:SQL ServerDatabase SQL di AzureIstanza gestita di SQL di AzureAzure Synapse AnalyticsPiattaforma di analisi (PDW)Endpoint di analisi SQL in Microsoft FabricMagazzino in Microsoft FabricDatabase SQL in Microsoft Fabric

Restituisce il numero di caratteri dell'espressione stringa specificata, esclusi gli spazi finali.

Nota

Per restituire il numero di byte usati per rappresentare un'espressione, usare la funzione DATALENGTH.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

LEN ( string_expression )

Argomenti

string_expression

Espressione stringa da valutare. string_expression può essere una costante, una variabile o una colonna di dati di tipo carattere o binario.

Tipi restituiti

bigint se expression è dei tipi di dati varchar(max), nvarchar(max)o varbinary(max); in caso contrario, int.

Se si usano regole di confronto SC, il valore intero restituito conta coppie di surrogati UTF-16 come singolo carattere. Per ulteriori informazioni, vedere Supporto per Unicode e regole di confronto.

Osservazioni:

LEN esclude gli spazi finali. Se si tratta di un problema, prendere in considerazione l'uso della funzione DATALENGTH , che non taglia la stringa. Se si elabora una stringa Unicode, DATALENGTH restituisce un numero che potrebbe non essere uguale al numero di caratteri. Nell'esempio seguente viene illustrato LEN e DATALENGTH con uno spazio finale.

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

Nota

Utilizzare LEN per restituire il numero di caratteri codificati in un'espressione stringa specificata e DATALENGTH per restituire le dimensioni in byte per un'espressione stringa specificata. Questi output possono variare a seconda del tipo di dati e del tipo di codifica usati nella colonna. Per altre informazioni sulle differenze di archiviazione tra tipi di codifica diversi, vedere Regole di confronto e supporto Unicode.

Esempi

Nell'esempio seguente vengono selezionati il numero di caratteri e i dati in FirstName per le persone residenti in Australia. In questo esempio viene utilizzato il database AdventureWorks.

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

Esempi: Azure Synapse Analytics e Piattaforma di strumenti analitici (PDW)

Nell'esempio seguente viene restituito il numero di caratteri nella colonna FirstName e il nome (FirstName) e il nome della famiglia (LastName) dei dipendenti che si trovano in 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';

Il set di risultati è il seguente.

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