Функції CONCAT та CONCAT_WS в SQL: Розбираємо на частини

Функції CONCAT та CONCAT_WS в SQL: Розбираємо на частини

6 Березня 2024 в 19:24 22

Функції CONCAT та CONCAT_WS є двома популярними засобами об’єднання рядків у мові запитів SQL. Вони забезпечують можливість конкатенації декількох рядків в один, але при цьому вони мають деякі відмінності, які варто розглянути детальніше.

Почнемо з розбору функції CONCAT. Вона призначена для об’єднання декількох рядків у єдиний рядок. Найчастіше вона використовується у випадках, коли потрібно додати певний текст до існуючого рядка чи об’єднати рядки різних стовпців у одне значення.

Синтаксис функції CONCAT досить простий: CONCAT(рядок1, рядок2, …). Вона приймає в аргументи рядки, які необхідно об’єднати, та повертає результат у вигляді одного рядка, де всі вхідні рядки об’єднані вказаною послідовністю.

Тепер давайте розглянемо функцію CONCAT_WS. Ця функція також призначена для об’єднання рядків, але вона дозволяє вказати роздільник між кожним з них. Тобто вона приймає перший аргумент як роздільник, а всі наступні – рядки, які необхідно об’єднати. При цьому функція ігнорує NULL значення, які можуть бути серед вхідних аргументів.

Синтаксис функції CONCAT_WS ще простіший за CONCAT: CONCAT_WS(роздільник, рядок1, рядок2, …). Результатом є рядок, де всі вхідні рядки об’єднані роздільником.

Важливо зауважити, що функція CONCAT_WS не додає роздільник перед першим рядком у результаті, як це робить CONCAT. Це означає, що вона ігнорує перший аргумент, якщо він є NULL або пустим. Тому у нашому прикладі результатом буде “www.google.com”, а не “.wwwgooglecom”, як можна було б очікувати.

Також варто зазначити, що CONCAT_WS дозволяє використовувати необов’язковий роздільник, що може бути корисним у випадках, коли необхідно об’єднати рядки без додаткових символів.

У підсумку, функції CONCAT та CONCAT_WS виконують схожі завдання з об’єднання рядків, але вони мають деякі важливі відмінності у способах їх використання та обробки вхідних аргументів. Вибір між ними залежить від конкретних потреб проекту та вимог до результату.