Как посчитать количество символов sql
Перейти к содержимому

Как посчитать количество символов sql

  • автор:

Функция LENGTH

Функция LENGTH используется для подсчета количества символов в строках.

Синтаксис

SELECT LENGTH(поле) FROM имя_таблицы WHERE условие

Таблицы для примеров

таблица users

id
айди
name
имя
1 Дмитрий
2 user6
3 Владимир

Пример

В данном примере при выборке из таблицы создается дополнительное поле, которое содержит длину поля name:

SELECT id, name, LENGTH(name) as length FROM users

Результат выполнения кода:

id
айди
name
имя
length
длина строки
1 Дмитрий 4
2 user6 4
3 Владимир 4

Пример

В данном примере с помощью условия WHERE выбираются только те записи, в которых длина поля name больше или равна 7 :

SELECT *, LENGTH(name) as length FROM users WHERE LENGTH(name)>=7

Результат выполнения кода:

id
айди
name
имя
length
длина строки
1 Дмитрий 7
3 Владимир 8

Пример

Конечно, не обязательно делать поле length, чтобы применить функцию LENGTH в условии:

SELECT * FROM users WHERE LENGTH(name)>=7

Результат выполнения кода:

id
айди
name
имя
1 Дмитрий
3 Владимир

LEN (Transact-SQL)

Возвращает количество символов указанного строкового выражения, исключая конечные пробелы.

Получить число байтов, используемых для представления выражения, можно с помощью функции DATALENGTH.

Синтаксис

LEN ( string_expression ) 

Сведения о синтаксисе Transact-SQL для SQL Server 2014 (12.x) и более ранних версиях см . в документации по предыдущим версиям.

Аргументы

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)

Эта функция возвращает число байтов, использованных для представления выражения.

Чтобы получить количество символов в строковом выражении, используйте функцию LEN.

Синтаксис

DATALENGTH ( expression ) 

Сведения о синтаксисе Transact-SQL для SQL Server 2014 (12.x) и более ранних версиях см . в документации по предыдущим версиям.

Аргументы

выражение
Выражение любого типа данных.

Типы возвращаемых данных

bigint, если expression имеет тип данных nvarchar(max), varbinary(max) или varchar(max); в противном случае int.

Замечания

Функция DATALENGTH особенно полезна при использовании с типами данных переменной длины, как показано ниже.

Для значения NULL функция DATALENGTH возвращает NULL.

Уровни совместимости могут повлиять на возвращаемые значения. Дополнительные сведения об уровнях совместимости см. в статье Уровень совместимости ALTER DATABASE (Transact-SQL).

Функция LEN возвращает количество символов, закодированных в определенное строковое выражение, а функция DATALENGTH — размер данных в байтах для определенного строкового выражения. Эти выходные данные могут быть разными в зависимости от типа данных и типа кодировки, используемой в столбце. Дополнительные сведения об отличиях типов кодировок, используемых для хранения данных, см. в статье Collation and Unicode Support (Поддержка параметров сортировки и Юникода).

Примеры

В следующем примере находится длина столбца Name в таблице Product :

USE AdventureWorks2022 GO SELECT length = DATALENGTH(EnglishProductName), EnglishProductName FROM dbo.DimProduct ORDER BY EnglishProductName; GO 

Функция LENGTH в Oracle SQL

В посте рассматривается однострочная функция LENGTH, относящаяся к функциям по работе с символьными данными.

Символьные данные или строки являются универсальными, т.к. они позволяют хранить практически любой тип данных. Функции, которые работают с символьными данными, классифицируются на функции преобразования регистра символов и манипулирования символами.

К функциям манипулирования символами относятся: CONCAT, LENGTH, SUBSTR, INSTR, LPAD, RPAD, TRIM и REPLACE. Они используются для извлечения, преобразования и форматирования символьных строк.

Функция LENGTH использует строку символов в качестве входного параметра и возвращает числовое значение, представляющее количество символов, присутствующих в этой строке.

В примере извлекаются данные из колонок last_name и first_name и определяется количество символов для каждого значения колонок last_name и first_name.

SELECT last_name, LENGTH(last_name), first_name, LENGTH(first_name) FROM employees;

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *