Jak działa CONCAT w języku SQL? Przykłady zastosowania

Jak działa CONCAT w języku SQL? Przykłady zastosowania

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_WS dla 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

KajoDataSpace