0Pricing
SQL Academy · Lekcja

Konkatenacja: || i CONCAT

Łącz ciągi znaków za pomocą operatora || i CONCAT(), a także poznaj sposób obsługi wartości NULL przez każde z tych rozwiązań.

Konkatenacja: || i CONCAT to bezpłatna lekcja SQL Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej SQL Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs SQL Academy zawiera 4 lekcji w sumie.

Standardowe łączenie: ||

Operatorem łączenia ciągów znaków zgodnym ze standardem SQL jest ||:

SELECT first_name || ' ' || last_name AS full_name FROM users;
SELECT 'Hello, ' || name || '!' FROM users;

|| z NULL = NULL

Jeśli dowolny operand ma wartość NULL, całe wyrażenie przyjmuje wartość NULL. Należy określić zachowanie jawnie:

SELECT first_name || ' ' || NULL;     -- NULL

-- Defend with COALESCE:
SELECT first_name || ' ' || COALESCE(last_name, '') FROM users;

CONCAT: alternatywa bezpieczna dla NULL

CONCAT traktuje NULL jak pusty ciąg znaków:

SELECT CONCAT(first_name, ' ', last_name) FROM users;
SELECT CONCAT(first_name, ' ', NULL);     -- 'first_name ' (no NULL)

CONCAT_WS: z separatorem

Najbardziej czytelne rozwiązanie do „łączenia z separatorem”:

SELECT CONCAT_WS(' ', title, first_name, middle_initial, last_name) AS pretty_name
FROM users;
-- ' ' between non-NULL fields only

Łączenie ciągów znaków i liczb

Można użyć rzutowania albo polegać na niejawnym konwertowaniu (PostgreSQL jest restrykcyjny — jawne rzutowania są bezpieczniejsze):

SELECT 'Order #' || id::TEXT  FROM orders;
SELECT CONCAT('Order #', id) FROM orders;     -- CONCAT auto-casts

Tworzenie ciągów do wyświetlania

Twórz czytelne etykiety:

SELECT id,
       email,
       CONCAT_WS(', ', city, region, country) AS location
FROM users;

Łączenie wartości zagregowanych za pomocą STRING_AGG

Aby połączyć wartości z wielu wierszy, użyj STRING_AGG (lub array_agg):

SELECT user_id,
       STRING_AGG(name, ', ' ORDER BY name) AS tag_names
FROM user_tags
GROUP BY user_id;

FORMAT dla ciągów opartych na szablonach

Funkcja format() w PostgreSQL działa w stylu printf i bezpiecznie obsługuje NULL:

SELECT format('User %s (id=%s) joined on %s',
              full_name, id, created_at::DATE)
FROM users;

Pusty ciąg znaków a NULL

Dla każdej kolumny zdecyduj: czy pusty ciąg znaków jest prawidłową wartością? Jeśli nie, traktuj '' na wejściu jako NULL:

INSERT INTO contacts (phone) VALUES (NULLIF(:phone, ''));

Wielowierszowe literały ciągów znaków

PostgreSQL obsługuje cytowanie za pomocą znaków dolara, dzięki czemu wielowierszowe ciągi znaków nie wymagają znaków ucieczki:

SELECT $$Hello,
'World' — with quotes!$$;

SELECT $custom_tag$ ... $custom_tag$;

Wydajność łączenia ciągów znaków

Łączenie jest szybkie — miliony operacji na sekundę. Kosztem jest zwykle operacja wejścia-wyjścia na wierszach, a nie operacje na ciągach znaków.

Podsumowanie

Używaj || do standardowego łączenia, CONCAT/CONCAT_WS do pomijania wartości NULL, FORMAT do szablonów, a STRING_AGG do łączenia wielu wierszy.

Szybki test

Jeśli last_name ma wartość NULL, co zwróci wyrażenie first_name || ' ' || last_name?

Często zadawane pytania

Czy lekcja „Konkatenacja: || i CONCAT” jest bezpłatna?

Tak — pełny tekst „Konkatenacja: || i CONCAT” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu SQL Academy, przejdź na CoddyKit PRO. Kurs SQL Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Konkatenacja: || i CONCAT”?

Łącz ciągi znaków za pomocą operatora || i CONCAT(), a także poznaj sposób obsługi wartości NULL przez każde z tych rozwiązań. Ćwiczysz SQL Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć SQL Academy?

Nie wymagamy żadnego doświadczenia. SQL Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „Konkatenacja: || i CONCAT”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji SQL Academy?

Tak. Każda lekcja SQL Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Konkatenacja: || i CONCAT
  2. UPPER, LOWER, SUBSTRING, REPLACE
  3. TRIM, LPAD, RPAD
  4. Wprowadzenie do wyszukiwania pełnotekstowego (tsvector, to_tsquery)
← Powrót do SQL Academy