Partage via


LEN (Transact-SQL)

S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) SQL analytics endpoint in Microsoft Fabric Warehouse in Microsoft Fabric

Retourne le nombre de caractères de l’expression de type chaîne spécifiée, à l’exception des espaces de fin.

Notes

Pour retourner le nombre d’octets utilisés pour représenter une expression, utilisez la fonction DATALENGTH.

Conventions de la syntaxe Transact-SQL

Syntaxe

LEN ( string_expression )  

Arguments

string_expression
Expression de chaîne à évaluer. string_expression peut être une constante, une variable ou une colonne de données binaires ou caractères.

Types de retour

bigint si expression est du type varchar(max) , nvarchar(max) ou varbinary(max) ; sinon, int.

Si vous utilisez des classements SC, la valeur entière retournée compte les paires de substitution UTF-16 comme un caractère unique. Pour plus d’informations, consultez Prise en charge d’Unicode et du classement.

Notes

LEN exclut les espaces de fin. Si ceci pose problème, utilisez la fonction DATALENGTH (Transact-SQL) qui ne les supprime pas. En cas de traitement d’une chaîne unicode, DATALENGTH retourne un nombre qui peut être différent du nombre de caractères. L’exemple suivant illustre les fonctions LEN et DATALENGTH avec un espace à droite.

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

Notes

Utilisez LEN pour retourner le nombre de caractères encodés dans une expression de chaîne donnée et DATALENGTH pour retourner la taille en octets d’une expression de chaîne donnée. Ces sorties peuvent différer selon le type de données et le type d’encodage utilisé dans la colonne. Pour plus d’informations sur les différences de stockage entre les différents types d’encodage, consultez Prise en charge d’Unicode et du classement.

Exemples

L'exemple suivant sélectionne le nombre de caractères et les données figurant dans FirstName pour les personnes résidant en Australia. Cet exemple utilise la base de données AdventureWorks.

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

Exemples : Azure Synapse Analytics et Analytics Platform System (PDW)

L’exemple suivant retourne le nombre de caractères dans la colonne FirstName et les prénoms et noms des employés situés dans 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';  

Voici le jeu de résultats obtenu.

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

Voir aussi

DATALENGTH (Transact-SQL)
CHARINDEX (Transact-SQL)
PATINDEX (Transact-SQL)
LEFT (Transact-SQL)
RIGHT (Transact-SQL)
Types de données (Transact-SQL)
Fonctions de chaîne (Transact-SQL)