Compartir a través de


LEN (Transact-SQL)

Se aplica a:SQL ServerAzure SQL DatabaseInstancia administrada de Azure SQLAzure Synapse AnalyticsAnalytics Platform System (PDW)Punto de conexión de SQL Analytics en Microsoft FabricAlmacén en Microsoft FabricBase de datos SQL en Microsoft Fabric

Devuelve el número de caracteres de la expresión de cadena especificada, excluidos los espacios finales.

Nota

Para devolver el número de bytes usado para representar una expresión, use la función DATALENGTH.

Convenciones de sintaxis de Transact-SQL

Sintaxis

LEN ( string_expression )

Argumentos

string_expression

Expresión de cadena que se va a evaluar. string_expression puede ser una constante, una variable o una columna de datos binarios o de caracteres.

Tipos de retorno

bigint si expression es de los tipos de datos varchar(max), nvarchar(max)o varbinary(max); de lo contrario, int.

Si usa intercalaciones SC, el valor entero devuelto cuenta pares suplentes UTF-16 como un solo carácter. Para obtener más información, consulte Soporte con intercalación y Unicode.

Comentarios

LEN excluye los espacios finales. Si se trata de un problema, considere la posibilidad de usar la función DATALENGTH , que no recorta la cadena. Si procesa una cadena unicode, DATALENGTH devuelve un número que podría no ser igual al número de caracteres. En el ejemplo siguiente se muestra LEN y DATALENGTH con un espacio final.

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

Use LEN para devolver el número de caracteres codificados en una expresión de cadena determinada y DATALENGTH para devolver el tamaño en bytes para una expresión de cadena determinada. Estas salidas pueden diferir en función del tipo de datos y del tipo de codificación que se usa en la columna. Para obtener más información sobre las diferencias de almacenamiento entre diferentes tipos de codificación, consulte Compatibilidad con intercalación y Unicode.

Ejemplos

El ejemplo siguiente selecciona el número de caracteres y los datos en FirstName para las personas que se encuentran en Australia. En este ejemplo se utiliza la base de datos de AdventureWorks.

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

Ejemplos: Azure Synapse Analytics y Sistema de la plataforma de análisis (PDW)

En el ejemplo siguiente se devuelve el número de caracteres de la columna FirstName y el nombre () y el nombre de familia (FirstNameLastName) de los empleados ubicados en 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';

Este es el conjunto de resultados.

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