
Funkcja CONCAT w SQL to jedno z podstawowych narzędzi do łączenia tekstu. Wszyscy, którzy pracują z bazami danych, prędzej czy później zetkną się z koniecznością łączenia wartości kolumn w jeden ciąg znaków. W tym artykule wyjaśnię dokładnie, jak działa CONCAT w języku SQL oraz przedstawię praktyczne przykłady zastosowania.
Co to jest CONCAT w SQL?
Funkcja CONCAT służy do łączenia dwóch lub więcej ciągów znaków (stringów) w jeden. Jest to funkcja wbudowana w SQL, co oznacza, że możemy jej używać w praktycznie każdej nowoczesnej bazie danych, np. MySQL, PostgreSQL, SQL Server czy Oracle.
Podstawowa składnia CONCAT
Wywołanie CONCAT wygląda tak:
CONCAT(string1, string2, ... stringN)
Funkcja łączy wszystkie podane argumenty w jeden ciąg tekstowy. Przykładowo:
SELECT CONCAT('Hello', ' ', 'World') AS wynik;
Rezultat:
| wynik |
|---|
| Hello World |
Łączenie kolumn w SQL
Najczęstszym zastosowaniem funkcji CONCAT jest łączenie wartości kolumn. Załóżmy, że mamy tabelę users:
| id | imie | nazwisko |
|---|---|---|
| 1 | Jan | Kowalski |
| 2 | Anna | Nowak |
Chcemy uzyskać pełne imię i nazwisko w jednej kolumnie. Możemy użyć CONCAT w zapytaniu:
SELECT id, CONCAT(imie, ' ', nazwisko) AS pelne_imie FROM users;
Wynik zapytania:
| id | pelne_imie |
|---|---|
| 1 | Jan Kowalski |
| 2 | Anna Nowak |
Obsługa wartości NULL w CONCAT
Jednym z ważnych aspektów działania CONCAT jest sposób, w jaki radzi sobie z wartościami NULL. W niektórych bazach (np. MySQL, PostgreSQL) jeśli którykolwiek argument CONCAT jest NULL, funkcja traktuje go jako pusty ciąg znaków.
Przykład:
SELECT CONCAT('SQL', NULL, ' Tutorial') AS wynik;
Rezultat:
| wynik |
|---|
| SQL Tutorial |
Natomiast w SQL Server funkcja CONCAT automatycznie konwertuje wartości NULL do pustego ciągu, więc nie powoduje przerwania konkatenacji.
Różnica między CONCAT i operatorem ||
Warto wiedzieć, że w niektórych systemach bazodanowych można użyć operatora || do konkatenacji zamiast funkcji CONCAT.
Przykład w PostgreSQL:
SELECT 'SQL' || ' ' || 'Tutorial';
Jednak operator || może działać inaczej w zależności od bazy, dlatego w celu zapewnienia zgodności warto używać funkcji CONCAT.
Łączenie liczb i tekstu
Jeśli chcesz połączyć liczby z tekstem, nie musisz ich konwertować na stringi ręcznie – CONCAT zrobi to za Ciebie.
SELECT CONCAT('Numer zamówienia: ', 12345) AS wynik;
Rezultat:
| wynik |
|---|
| Numer zamówienia: 12345 |
Alternatywa: CONCAT_WS
Jeśli chcemy dodać separatory między łączonymi tekstami, warto użyć funkcji CONCAT_WS (concatenate with separator). Składnia:
CONCAT_WS(seperator, string1, string2, ... stringN)
Przykład:
SELECT CONCAT_WS(', ', 'Jan', 'Kowalski', 'Warszawa') AS wynik;
Rezultat:
| wynik |
|---|
| Jan, Kowalski, Warszawa |
Podsumowanie
Funkcja CONCAT w SQL jest nieocenionym narzędziem, jeśli chodzi o łączenie tekstów. Możemy używać jej do:
- Łączenia stałych wartości tekstowych.
- Konkatenacji wartości kolumn w bazach danych.
- Obsługi wartości numerycznych bez konieczności ich konwersji.
- Radzenia sobie z potencjalnymi wartościami
NULL. - Użycia alternatywy
CONCAT_WSdla separatorów.
Znajomość CONCAT to podstawa przy pracy z danymi tekstowymi w SQL. Mam nadzieję, że ten artykuł dostarczył Ci wszystkich niezbędnych informacji i przykładów do skutecznego wykorzystania tej funkcji.
Inny ciekawy artykuł:
Jak działa POSITION w języku SQL? Przykłady zastosowania
Opanuj SQL z moim kursem!
Poznasz zarówno podstawy, jak i zaawansowane zapytania analityczne (CTE, subqueries, window functions). Nauczysz się pracować na różnych silnikach – na kursie pracujemy zarówno na MySQL, jak i na Postgres. Wszystko zainstalujemy na Twoim komputerze, plus dostaniesz mnóstwo zestawów danych do ćwiczeń.
Zostań analitykiem danych – dołącz do KajoDataSpace!
Najlepsza ścieżka do zawodu analityka danych. Dostęp do pełnych wersji kursów online z Excela, SQLa, PowerBI, Tableau i Pythona z certyfikatami!
🟨 Ekskluzywana ale pomagająca sobie społeczność.
🟩 Ponad 75 godzin materiałów video.
🟨 Spotkania LIVE co miesiąc.
🟩 Mój osobisty mentoring.

