LEN (Transact-SQL)
Si applica a: SQL Server
database SQL di Azure
Istanza gestita di SQL di Azure
endpoint di analisi SQL di Azure Synapse Analytics
Platform System (PDW)
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 )
Nota
Per visualizzare la sintassi Transact-SQL per SQL Server 2014 (12.x) e versioni precedenti, vedere Documentazione delle versioni precedenti.
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';
Questo è il set di risultati.
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)