LEN (Transact-SQL)
Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure конечной точке аналитики платформы Аналитики Azure Synapse Analytics (PDW) в Microsoft Fabric Хранилище в Microsoft Fabric
Возвращает количество символов указанного строкового выражения, исключая конечные пробелы.
Примечание.
Получить число байтов, используемых для представления выражения, можно с помощью функции DATALENGTH.
Соглашения о синтаксисе Transact-SQL
Синтаксис
LEN ( string_expression )
Аргументы
string_expression
Оцениваемое строковое выражение. Аргумент string_expression может быть константой, переменной или столбцом символьных или двоичных данных.
Типы возвращаемых данных
bigint, если expression имеет тип данных varchar(max), nvarchar(max) или varbinary(max); в противном случае int.
Если используются параметры сортировки SC, то возвращаемое целое значение рассматривает суррогатные пары Юникода UTF-16 как один символ. Дополнительные сведения см. в статье Collation and Unicode Support.
Замечания
Функция LEN исключает конечные пробелы. Если это может создать проблемы, рекомендуется использовать функцию DATALENGTH (Transact-SQL), которая не усекает строку. При обработке строки Юникода DATALENGTH возвращает число, которое, возможно, не будет равно количеству символов. В приведенном ниже примере демонстрируется работа функций LEN и DATALENGTH с конечным пробелом.
DECLARE @v1 VARCHAR(40),
@v2 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];
Примечание.
Функция LEN возвращает количество символов, закодированных в определенное строковое выражение, а функция DATALENGTH — размер данных в байтах для определенного строкового выражения. Эти выходные данные могут быть разными в зависимости от типа данных и типа кодировки, используемой в столбце. Дополнительные сведения об отличиях типов кодировок, используемых для хранения данных, см. в статье Collation and Unicode Support (Поддержка параметров сортировки и Юникода).
Примеры
Следующий пример выбирает число символов и данные по имени людей FirstName
, живущих в Australia
. В примере используется база данных AdventureWorks.
SELECT LEN(FirstName) AS Length, FirstName, LastName
FROM Sales.vIndividualCustomer
WHERE CountryRegionName = 'Australia';
GO
Примеры: Azure Synapse Analytics и система платформы аналитики (PDW)
В приведенном ниже примере возвращается число символов в столбце FirstName
, а также первое и последнее имена сотрудников в 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';
Вот результирующий набор.
FNameLength FirstName LastName
----------- --------- ---------------
4 Lynn Tsoflias
См. также
DATALENGTH (Transact-SQL)
CHARINDEX (Transact-SQL)
PATINDEX (Transact-SQL)
LEFT (Transact-SQL)
RIGHT (Transact-SQL)
Типы данных (Transact-SQL)
Строковые функции (Transact-SQL)