Aracılığıyla paylaş


LEN (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiAzure Synapse AnalyticsAnaliz Platformu Sistemi (PDW)Microsoft Fabric'teki SQL analiz uç noktasıMicrosoft Fabric'teki ambarMicrosoft Fabric'teki SQL veritabanı

Belirtilen dize ifadesinin karakter sayısını döndürür; sondaki boşluklar hariç.

Uyarı

Bir ifadeyi temsil etmek için kullanılan bayt sayısını döndürmek için DATALENGTH işlevini kullanın.

Transact-SQL söz dizimi kuralları

Sözdizimi

LEN ( string_expression )

Tartışmalar

string_expression

Değerlendirilecek dize ifadesi . string_expression , karakter veya ikili verilerden oluşan sabit, değişken veya sütun olabilir.

Dönüş türleri

ifadevarchar(max), nvarchar(max)veya varbinary(max) veri türlerindeyse bigint; aksi takdirde, int.

SC harmanlamaları kullanıyorsanız, döndürülen tamsayı değeri UTF-16 vekil çiftlerini tek bir karakter olarak sayar. Daha fazla bilgi için bkz. Harmanlama ve Unicode desteği.

Açıklamalar

LEN sondaki boşlukları dışlar. Bu bir sorunsa, dizeyi kırpmayan DATALENGTH işlevini kullanmayı göz önünde bulundurun. Unicode dizesini işlerseniz, DATALENGTH karakter sayısına eşit olmayan bir sayı döndürür. Aşağıdaki örnekte ve sonunda bir boşluk gösterilmiştir LENDATALENGTH .

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

Uyarı

Belirli bir dize ifadesinde kodlanmış karakter sayısını döndürmek için ve LENDATALENGTH işlevini kullanarak belirli bir dize ifadesinin bayt cinsinden boyutunu döndür. Bu çıkışlar, sütunda kullanılan veri türüne ve kodlama türüne bağlı olarak farklılık gösterebilir. Farklı kodlama türleri arasındaki depolama farklılıkları hakkında daha fazla bilgi için bkz. Harmanlama ve Unicode desteği.

Örnekler

Aşağıdaki örnek, içinde bulunan FirstNamekişilerin karakter sayısını ve içindeki Australia verileri seçer. Bu örnekte AdventureWorks veritabanı kullanılmaktadır.

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

Örnekler: Azure Synapse Analytics ve Analytics Platform Sistemi (PDW)

Aşağıdaki örnek, sütunundaki FirstName karakter sayısını ve içinde bulunan FirstNameçalışanların adını (LastName) ve aile adını (Australia) döndürür.

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

Sonuç kümesi aşağıdadır.

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