Рядкилише PostgreSQL

STARTS_WITH

Перевіряє, чи починається рядок із заданого префікса.

Синтаксис

STARTS_WITH(<текст>, <префікс>)
<текст> ^@ <префікс>

Повертає true чи false. Робить те саме, що LIKE '<префікс>%', але не треба думати про % і _ у самому префіксі: він порівнюється буквально. Оператор ^@ — коротший запис того самого.

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

employees

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

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

Чи починається з префікса
SELECT STARTS_WITH('PostgreSQL', 'Post') AS post,
STARTS_WITH('PostgreSQL', 'post') AS lowercase;
postlowercase
truefalse
Телефони з кодом +44
SELECT name, phone
FROM employees
WHERE STARTS_WITH(phone, '+44');
namephone
Emma+44 7700 900123
Olivia+44 7700 900456
Noah+44 7700 900789
Коли в префіксі є _
SELECT STARTS_WITH('userX1', 'user_') AS starts_with,
'userX1' LIKE 'user_%' AS like_matches;
starts_withlike_matches
falsetrue

_ у LIKE означає «будь-який символ», тож userX1 підходить. STARTS_WITH порівнює префікс буквально.

Зверни увагу

Регістр важить: STARTS_WITH('Emma', 'em') дає false. Без огляду на регістр — STARTS_WITH(LOWER(name), 'em').

Для NULL результат NULL, тож у WHERE такий рядок просто не пройде.

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