Рядкистандарт SQL

LOWER

Переводить текст у нижній регістр.

Синтаксис

LOWER(<текст>)

Робить усі літери малими, решта символів не змінюється. Дзеркальна функція — UPPER, вона робить літери великими. Найчастіше LOWER потрібна, щоб порівнювати текст без огляду на регістр: Emma, emma і EMMA стають однаковими.

Дані для прикладів

employees

namedepartmentsalarybonusphone
Emmabackend1200300+44 7700 900123
Liambackend1000NULLNULL
Oliviafrontend1350150+44 7700 900456
Noahfrontend950NULL+44 7700 900789
Sophiadesign1200200NULL

Ці таблиці вже створено в пісочниці — приклади нижче працюють із ними. Хочеш повторити у своїй базі — скопіюй SQL.

Малими літерами
SELECT LOWER('Hello, SQL') AS lower_case;
lower_case
hello, sql
Пошук без огляду на регістр
SELECT name, department
FROM employees
WHERE LOWER(name) = LOWER('EMMA');
namedepartment
Emmabackend

Хоч у пошук ввели EMMA, хоч emma — зводимо обидва боки до малих літер, і Emma знаходиться.

Email до одного вигляду
SELECT LOWER('Emma.Wilson@Example.COM') AS email;
email
emma.wilson@example.com

Адреси часто вводять як попало, а зберігати й порівнювати їх зручніше малими літерами.

Зверни увагу

Зводь до одного регістру обидва боки: LOWER(name) = 'Emma' не знайде нікого, бо ліворуч лише малі літери, а праворуч — велика E.

Звичайний індекс на name не допоможе запиту з LOWER(name). Для таких пошуків роблять індекс на вираз: CREATE INDEX ON employees (LOWER(name));.

Для пошуку за шаблоном без огляду на регістр є ILIKE: name ILIKE 'em%'.

Схожі функції