Робота з базами даних постійно пов'язана з отриманням результатів запитів. І в деяких випадках цю інформацію необхідно вивести на екран певним чином, або об'єднати з іншими даними. Для вирішення цієї проблеми існує функція SQL – CONCAT.
Що робить функція CONCAT?
При виконанні деяких робіт з базами даних, виникає потреба у з'єднанні рядків з додатковими даними або між собою. Для рішення такої задачі існує функція SQL – CONCAT. При її використанні дві або більше рядків будуть об'єднані в одну. При цьому операція конкатенації рядків буде правильно проведена як при роботі з рядками, так і з числовими змінними.
В деяких базах даних SQL CONCAT має кілька різновидів. Так, в MySQL вона має свій аналог – CONCAT_WS. Відмінність між функціями несуттєві: у разі роботи першої, при об'єднанні з аргументом, значення якого дорівнює NULL, результатом конкатенації буде NULL, а при використанні другого варіанту об'єднання нульовою операнд буде просто пропущено.
Синтаксис функції
При використанні функції CONCAT, синтаксис SQL зобов'язує програміста використовувати аргументи в тому порядку, в якому операнди повинні бути з'єднані. Сам синтаксис операції конкатенації рядків досить простий: після ключового слова CONCAT в дужках через кому вказуються всі необхідні аргументи або рядка за порядком, а після закриваючі дужки, у разі потреби, указується ключове слово AS і ім'я змінної, куди буде записано отриманий результат. Шаблон функції CONCAT виглядає наступним чином:
CONCAT (string1 строка2[, строка 3, ])[AS имя_переменной]. Варто відзначити, що у якості аргументів функції може використовуватися як операнд чисельного та значення рядка, так і деяка функція, що повертає результат. Наприклад, сама операція SQL CONCAT. Таким чином, операція підтримує принцип вкладеності.
Як обійтися без використання CONCAT?
У разі коли є необхідність обійтися без використання операції, або програмісту невідома функція CONCAT, SQL пропонує ще один варіант здійснення конкатенації рядків. Для цього необхідно скористатися оператором "+", однак такий підхід має ряд особливостей, які необхідно враховувати при роботі з ним.
При використанні функції "+" у випадку, якщо операндами є числові значення, результатом операції буде звичайне додавання чисел, а при необхідності об'єднати число з рядком без явного перетворення програма видасть помилку. Так, при виконанні наступного запиту результатом буде значення числа "6": SELECT 1+2+3. В іншому обидва способи ідентичні і повертають однаковий результат.