Condividi tramite


LEN (Transact-SQL)

Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics Piattaforma di strumenti analitici (PDW) Endpoint di analisi SQL in Microsoft Fabric Warehouse 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 è del tipo di dati varchar(max), nvarchar(max) o varbinary(max). In caso contrario, int.

Se si utilizzano le regole di confronto SC, il valore intero restituito considererà le coppie di surrogati UTF-16 come un singolo carattere. Per ulteriori informazioni, vedi Supporto per Unicode e regole di confronto.

Osservazioni:

LEN esclude gli spazi finali. Se questo è un problema, provare a usare la funzione DATALENGTH (Transact-SQL) che non taglia la stringa. Se si elabora una stringa Unicode, DATALENGTH restituirà un numero che potrebbe non corrispondere al numero di caratteri. Nell'esempio seguente viene illustrato l'uso di LEN e DATALENGTH con uno spazio finale.

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

Nota

Usare LEN per restituire il numero di caratteri codificati in una determinata espressione stringa e DATALENGTH per restituire la dimensione 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)

L'esempio seguente restituisce il numero di caratteri nella colonna FirstName e i nomi e cognomi dei dipendenti 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

Vedi anche

DATALENGTH (Transact-SQL)
CHARINDEX (Transact-SQL)
PATINDEX (Transact-SQL)
LEFT (Transact-SQL)
RIGHT (Transact-SQL)
Tipi di dati (Transact-SQL)
Funzioni per i valori stringa (Transact-SQL)