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-castsTworzenie 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
- Konkatenacja: || i CONCAT
- UPPER, LOWER, SUBSTRING, REPLACE
- TRIM, LPAD, RPAD
- Wprowadzenie do wyszukiwania pełnotekstowego (tsvector, to_tsquery)