Większość głównych systemów zarządzania bazą danych (RDBMS) udostępnia kilka opcji łączenia dwóch lub więcej ciągów.
- Jest
CONCAT()
funkcja, która łączy swoje argumenty. - Istnieje również funkcja
CONCAT_WS()
który pozwala określić separator, który oddziela połączone ciągi. - Istnieje również operator konkatenacji ciągów znaków, który pozwala nam łączyć jego operandy.
Poniżej znajdują się przykłady każdej metody.
CONCAT()
Funkcja
Większość głównych RDBMS zapewnia funkcję CONCAT()
funkcja do łączenia jej argumentów ciągu. Ogólnie rzecz biorąc, argumenty niebędące ciągami są konwertowane na ciąg przed konkatenacją.
Przykład:
SELECT CONCAT('Bangkok', 'Breaking');
Wynik:
BangkokBreaking
Dzięki tej funkcji, jeśli chcemy umieścić spację między ciągami, musielibyśmy albo dodać spację do jednego z ciągów, albo dołączyć spację jako oddzielny argument:
SELECT
CONCAT('Bangkok ', 'Breaking') AS "Option 1",
CONCAT('Bangkok', ' ', 'Breaking') AS "Option 2";
Wynik:
+------------------+------------------+ | Option 1 | Option 2 | +------------------+------------------+ | Bangkok Breaking | Bangkok Breaking | +------------------+------------------+
RDBMS-y z CONCAT()
funkcja obejmuje MySQL, MariaDB, SQL Server, Oracle i PostgreSQL.
SQLite nie zawiera CONCAT()
działa, ale tak mieć operator konkatenacji ciągów (patrz poniżej).
CONCAT_WS()
Funkcja
Innym sposobem na umieszczenie spacji między ciągami jest użycie CONCAT_WS()
funkcjonować. Ta funkcja pozwala określić separator, który zostanie użyty do oddzielenia wszystkich połączonych ciągów.
Przykład:
SELECT CONCAT_WS(' ', 'Bangkok', 'Breaking');
Wynik:
Bangkok Breaking
Ta funkcja może być szczególnie przydatna, jeśli masz dużo ciągów do połączenia:
SELECT CONCAT_WS(', ', 'Red', 'Green', 'Orange', 'Blue');
Wynik:
Red, Green, Orange, Blue
W takich przypadkach separator wystarczy określić tylko raz.
RDBMS, które mają CONCAT_WS()
funkcja obejmuje MySQL, MariaDB, SQL Server i PostgreSQL.
SQLite i Oracle nie mają funkcji CONCAT_WS()
działają, ale tak mieć operator konkatenacji ciągów (patrz poniżej).
Operator konkatenacji ciągów
Większość systemów RDBMS zawiera operator konkatenacji ciągów, który łączy operandy.
Jeśli używasz SQLite, jest to jedyna opcja.
Przykład:
SELECT 'Spy' || 'craft';
Wynik:
Spycraft
Zauważ, że w MySQL musisz najpierw włączyć operator konkatenacji potoku.
To samo dotyczy MariaDB.
Serwer SQL
Powyższy przykład nie zadziała w SQL Server. W SQL Server użyj znaku plus (+
) operator konkatenacji ciągów:
SELECT 'Spy' + 'craft';
Wynik:
Spycraft