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

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

  • автор:

Почему функция length() в SQL выводит неправильное количество символов если символы русские?

Почему функция length() в SQL выводит неправильное количество символов если символы русские? Если символы латинские то всё верно но если русские то вывод неверный. Вывод Select Поменял кодировку и самой БД и таблицы на utf8 — не помогло. Кодировка БД Я только изучаю SQL, сори если вопрос тупой но на просторах интернета ответа не нашёл как это исправить.

Отслеживать
задан 25 мар 2019 в 13:51
Даня Pylooon Даня Pylooon
43 3 3 бронзовых знака

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Функция length() в MySQL возвращает длину строки в байтах. А Русские символы в кодировке UTF-8 занимают 2 байта.

Для получения длины строки в символах надо использовать функцию char_length()

Отслеживать
ответ дан 25 мар 2019 в 13:57
44.1k 3 3 золотых знака 35 35 серебряных знаков 66 66 бронзовых знаков
Спасибо большое!
25 мар 2019 в 13:59

  • mysql
  • sql
    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.9.3159

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Функция 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;

Функция LEN

Функция LEN (строковое выражение) возвращает число символов в строке, задаваемой строковым выражением. Ограничимся случаем, когда число символов больше единицы:

Консоль

Выполнить

Реализация функции LEN() в MS Cистема управления реляционными базами данных (СУБД), разработанная корпорацией Microsoft. Язык структурированных запросов) — универсальный компьютерный язык, применяемый для создания, модификации и управления данными в реляционных базах данных. SQL Server имеет одну особенность, а именно, она не учитывает концевые пробелы.

Давайте выполним следующий код:

Функция REPLICATE добавляет справа к константе ‘abcde’ пять пробелов, которые не учитываются функцией LEN, — в обоих случаях мы получаем 5.

Функция DATALENGTH возвращает число байтов в строковом представлении и демонстрирует различие в типах данных CHAR и VARCHAR. DATALENGTH возвращает 12 для типа CHAR(12), и 10 — для VARCHAR(12).

Как и следовало ожидать, DATALENGTH для переменной типа VARCHAR вернуло фактическую длину строковой переменной. Но почему для переменной типа CHAR результат оказался равным 12? Дело в том, что CHAR является типом данных фиксированной длины. Если значение переменной меньше объявленной длины, а мы использовали CHAR(12), значение переменной будет дополнено концевыми пробелами, чтобы «выровнять» длину до 12 символов.

На сайте имеются задачи, в которых требуется упорядочить (найти максимум и т. д.) в числовом порядке значения, представленные в текстовом формате. Например, номер места в самолете (2d) или скорость привода CD-ROM (24x). Проблема заключается в том, что текст сортируется так (по возрастанию):

Консоль

Выполнить

LENGTH ФУНКЦИЯ

Функция Oracle/PLSQL LENGTH возвращает длину указанной строки.

Синтаксис

Синтаксис функции Oracle/PLSQL LENGTH:

LENGTH( string1 )

Параметры или аргументы

string1 – строка, длину которой возвращает функция. string1 может быть CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB, or NCLOB.

Примечание

  • Функция LENGTH возвращает numeric значение.
  • Если string1 равен NULL, то функция LENGTH вернет NULL.

Применение

Функцию LENGTH можно использовать в следующих версиях Oracle/PLSQL:

  • Oracle 12c, Oracle 11g, Oracle 10g, Oracle 9i, Oracle 8i

Пример

Рассмотрим несколько примеров функции LENGTH и изучим, как использовать функцию LENGTH в Oracle/PLSQL.

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

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