Partager via


LEN (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Point de terminaison d’analytique SQL dans Microsoft FabricEntrepôt dans Microsoft FabricBase de données SQL dans 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 )

Les 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 l’expression est des types de données varchar(max), nvarchar(max)ou varbinary(max) ; sinon, int.

Si vous utilisez des classements SC, la valeur entière retournée compte des paires de substitution UTF-16 sous forme de caractère unique. Pour plus d'informations, consultez Classement et prise en charge Unicode.

Notes

LEN exclut les espaces de fin. Si c’est un problème, envisagez d’utiliser la fonction DATALENGTH , qui ne supprime pas la chaîne. Si vous traitez une chaîne Unicode, DATALENGTH retourne un nombre qui peut ne pas être égal au nombre de caractères. L’exemple suivant illustre LEN et DATALENGTH avec un espace de fin.

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

Notes

Permet LEN de 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 différents types d’encodage, consultez Prise en charge du classement et unicode.

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 le prénom (FirstName) et le nom de famille (LastName) 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.

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