Udostępnij za pomocą


LEN (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Punkt końcowy analizy SQL w usłudze Microsoft FabricHurtownia danych w usłudze Microsoft FabricBaza danych SQL w usłudze Microsoft Fabric

Zwraca liczbę znaków określonego wyrażenia ciągu z wyłączeniem spacji końcowych.

Uwaga / Notatka

Aby zwrócić liczbę bajtów używanych do reprezentowania wyrażenia, użyj funkcji DATALENGTH .

Transact-SQL konwencje składni

Składnia

LEN ( string_expression )

Argumenty (w programowaniu)

string_expression

Wyrażenie ciągu do obliczenia. string_expression może być stałą, zmienną lub kolumną danych binarnych albo znaków.

Typy zwracane

bigint , jeśli wyrażenie jest typu danych varchar(max), nvarchar(max)lub varbinary(max). w przeciwnym razie , int.

Jeśli używasz sortowania sc, zwracana wartość całkowita zlicza pary zastępcze UTF-16 jako pojedynczy znak. Aby uzyskać więcej informacji, zobacz Collation and Unicode support.

Uwagi

LEN wyklucza spacje końcowe. Jeśli jest to problem, rozważ użycie funkcji DATALENGTH , która nie przycina ciągu. W przypadku przetwarzania ciągu Unicode zwraca liczbę, DATALENGTH która może nie być równa liczbie znaków. W poniższym przykładzie pokazano LEN i DATALENGTH z spacją końcową.

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

Uwaga / Notatka

Użyj LEN polecenia , aby zwrócić liczbę znaków zakodowanych w danym wyrażeniu ciągu, a funkcja DATALENGTH zwraca rozmiar w bajtach dla danego wyrażenia ciągu. Te dane wyjściowe mogą się różnić w zależności od typu danych i typu kodowania używanego w kolumnie. Aby uzyskać więcej informacji na temat różnic w magazynie między różnymi typami kodowania, zobacz Obsługa sortowania i Unicode.

Przykłady

Poniższy przykład wybiera liczbę znaków i dane w FirstName pliku dla osób znajdujących się w Australialokalizacji . W tym przykładzie użyto bazy danych AdventureWorks.

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

Przykłady: Azure Synapse Analytics and Analytics Platform System (PDW)

Poniższy przykład zwraca liczbę znaków w kolumnie FirstName oraz imię (FirstName) i nazwę rodziny (LastName) pracowników znajdujących się w Australialokalizacji .

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

Oto zestaw wyników.

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