Megosztás a következőn keresztül:


LEN (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példányAzure Synapse AnalyticsElemzési platformrendszer (PDW)SQL Analytics-végpont a Microsoft FabricbenRaktár a Microsoft FabricbenSQL-adatbázis a Microsoft Fabricben

A megadott sztringkifejezés karaktereinek számát adja vissza, a záró szóközök kivételével.

Megjegyzés:

A kifejezések megjelenítéséhez használt bájtok számának visszaadásához használja a DATALENGTH függvényt .

Transact-SQL szintaxis konvenciók

Szemantika

LEN ( string_expression )

Érvek

string_expression

A kiértékelendő sztringkifejezés . string_expression lehet egy állandó, változó vagy oszlop karakterből vagy bináris adatból.

Visszatérési típusok

bigint , ha a kifejezésvarchar(max), nvarchar(max) vagy varbinary(max) adattípusból áll; egyéb esetben int.

Ha SC-rendezéseket használ, a visszaadott egész szám az UTF-16 helyettesítő párokat egyetlen karakterként számítja ki. További információ: összehasonlítási szabályok és Unicode-támogatás.

Megjegyzések

LEN kizárja a záró szóközöket. Ha ez probléma, fontolja meg a DATALENGTH függvény használatát, amely nem vágja ki a sztringet. Unicode-sztring feldolgozásakor olyan számot ad vissza, DATALENGTH amely nem feltétlenül egyenlő a karakterek számával. Az alábbi példa bemutatja LEN és DATALENGTH egy záró szóközzel.

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

Megjegyzés:

Egy LEN adott sztringkifejezésbe kódolt karakterek számát, a DATALENGTH pedig egy adott sztringkifejezés bájtban megadott méretét adja vissza. Ezek a kimenetek az oszlopban használt adattípustól és kódolási típustól függően eltérhetnek. A különböző kódolási típusok közötti tárolási különbségekről további információt a Rendezés és a Unicode támogatása című témakörben talál.

Példák

Az alábbi példa a karakterek számát és a benne lévő FirstNameszemélyek adatait Australia jelöli ki. Ez a példa az AdventureWorks adatbázist használja.

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

Példák: Azure Synapse Analytics and Analytics Platform System (PDW)

Az alábbi példa az oszlopban FirstName lévő karakterek számát, valamint a benne található FirstNamealkalmazottak utónevét (LastName) és családnevét (Australia) adja vissza.

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

Itt van az eredmények összessége.

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