SELECT
CONCAT(first_name, ' ', last_name) AS full_name
FROM users
LIMIT 2;
Результат:
full_name --------------- Анна Смирнова Игорь Волков
SELECT
'Заказ #' || order_id AS label
FROM orders
ORDER BY order_id
LIMIT 2;
Результат:
label ----------- Заказ #1001 Заказ #1002
SELECT
CONCAT_WS(', ', city, country) AS location
FROM users
LIMIT 2;
Результат:
location ----------------- Москва, Россия Алматы, КазахстанПорешать SQL-задачи в тренажёре →
На собесе спрашивают в контексте форматирования строк и сборки меток. Идёт в паре с COALESCE (защита от NULL) и CONCAT_WS для сборки CSV-подобных значений.
|| — это оператор SQL-стандарта, работает в PostgreSQL и SQLite и возвращает NULL, если хоть один операнд NULL. CONCAT — функция, которая в Postgres/SQLite пропускает NULL. В MySQL || по умолчанию означает логическое ИЛИ, поэтому там для склейки нужен именно CONCAT.
Скорее всего вы в MySQL и один из аргументов оказался NULL — тогда весь результат NULL. Оберните проблемные колонки в COALESCE(col, ''), либо используйте CONCAT_WS, который игнорирует NULL-аргументы.
Функция CONCAT() и CONCAT_WS() появились в SQLite только с версии 3.44 (конец 2023). На старых версиях используйте оператор ||. Для склейки с разделителем на старом SQLite придётся собирать строку вручную через ||.
Строковые функции · null-handling
COALESCE · NULLIF · COUNT · SUBSTR · CAST · REPLACE
Открыть SQL-тренажёр (565 задач) →