Проблем:
Искате да обедините низове от две колони на таблица в една.
Пример:
Нашата база данни има таблица с име student с данни в следните колони:id , first_name и last_name .
| id | first_name | фамилно_име |
|---|---|---|
| 1 | Лора | Смит |
| 2 | Емил | Кафяв |
| 3 | Алекс | Джаксън |
| 4 | Мартин | Дейвис |
Нека добавим първото име към фамилното име на ученика в един низ. Използвайте интервал между всяко име.
Решение:
SELECT first_name || ‘ ‘ || last_name AS full_name FROM student;
Тази заявка връща записи в една колона с име full_name :
| пълно_име |
|---|
| Лора Смит |
| Емил Браун |
| Алекс Джаксън |
| Мартин Дейвис |
Дискусия:
За да добавите низ към друг и да върнете един резултат, използвайте || оператор. Това добавя два низа отляво и отдясно заедно и връща един резултат. Ако използвате името на колоната, не го затваряйте в кавички. Въпреки това, когато използвате стойност на низ като интервал или текст, оградете го в кавички.
В нашия пример добавихме интервал към first_name и след това колоната last_name . Тази нова колона се нарича full_name .
Можете също да използвате специална функция:CONCAT. Необходим е списък с низове или имена на колони, които да се присъединят като аргументи:
SELECT CONCAT(first_name, ‘ ‘, last_name) AS full_name FROM student;
Резултатите са идентични.
Въпреки това, функцията CONCAT() е по-добра за извличане на данни от колона със стойности NULL. Защо? Тъй като, когато NULL е включено в стойностите, които трябва да бъдат обединени, операторът връща NULL като резултат. В случай на CONCAT(), NULL няма да се показва.
Вижте резултата от || оператор, ако Emill няма записано фамилно име:
SELECT first_name || ‘ ‘ || last_name AS full_name FROM student;
| пълно_име |
|---|
| Лора Смит |
| NULL |
| Алекс Джаксън |
| Мартин Дейвис |
Вижте функцията CONCAT за същите данни:
SELECT CONCAT(first_name, ‘ ‘, last_name) AS full_name FROM student;
| пълно_име |
|---|
| Лора Смит |
| Емил |
| Алекс Джаксън |
| Мартин Дейвис |