Problem:
Chcesz połączyć ciągi z dwóch kolumn tabeli w jedną.
Przykład:
Nasza baza danych zawiera tabelę o nazwie student
z danymi w następujących kolumnach:id
, first_name
i last_name
.
id | imię | nazwisko |
---|---|---|
1 | Lora | Kowalski |
2 | Emilu | Brązowy |
3 | Alek | Jackson |
4 | Marcin | Davis |
Dołączmy imię do nazwiska ucznia w jednym ciągu. Użyj spacji między każdą nazwą.
Rozwiązanie:
SELECT first_name || ‘ ‘ || last_name AS full_name FROM student;
To zapytanie zwraca rekordy w jednej kolumnie o nazwie full_name
:
pełna_nazwa |
---|
Lora Smith |
Emil Brown |
Alex Jackson |
Martin Davis |
Dyskusja:
Aby dołączyć ciąg do innego i zwrócić jeden wynik, użyj || operator. Spowoduje to dodanie razem dwóch ciągów od lewej i prawej strony i zwrócenie jednego wyniku. Jeśli używasz nazwy kolumny, nie umieszczaj jej w cudzysłowie. Jednak używając wartości ciągu jako spacji lub tekstu, umieść ją w cudzysłowie.
W naszym przykładzie dodaliśmy spację do first_name
a następnie kolumna last_name
. Ta nowa kolumna nazywa się full_name
.
Możesz także użyć specjalnej funkcji:CONCAT. Jako argumenty należy połączyć listę ciągów lub nazw kolumn:
SELECT CONCAT(first_name, ‘ ‘, last_name) AS full_name FROM student;
Wyniki są identyczne.
Jednak funkcja CONCAT() jest lepsza do pobierania danych z kolumny o wartościach NULL. Czemu? Ponieważ, gdy wartość NULL jest zawarta w wartościach, które mają zostać połączone, operator zwraca jako wynik NULL. W przypadku CONCAT(), NULL nie będzie wyświetlany.
Spójrz na wynik || operator, jeśli Emill nie ma zarejestrowanego nazwiska:
SELECT first_name || ‘ ‘ || last_name AS full_name FROM student;
pełna_nazwa |
---|
Lora Smith |
NULL |
Alex Jackson |
Martin Davis |
Spójrz na funkcję CONCAT dla tych samych danych:
SELECT CONCAT(first_name, ‘ ‘, last_name) AS full_name FROM student;
pełna_nazwa |
---|
Lora Smith |
Emil |
Alex Jackson |
Martin Davis |