Łączenie ciągów PostgreSQL

Laczenie Ciagow Postgresql



Jeśli masz dwa ciągi znaków, możesz je połączyć, aby uzyskać jeden końcowy ciąg. Biorąc przykład z imienia i nazwiska użytkownika, możesz je połączyć, aby uzyskać jego pełne imię i nazwisko. W PostgreSQL istnieją dwie opcje, których można użyć do łączenia ciągów. Istnieje stara metoda użycia operatora (||) i nowa możliwość użycia CONCAT(). Obydwa sposoby omówiono w tym poście, aby upewnić się, że rozumiesz, jak z łatwością łączyć ciągi znaków. Czytaj dalej, aby zobaczyć różne przykłady łączenia ciągów.

Łączenie ciągów w PostgreSQL

Możesz łączyć ciągi z różnych powodów. Może się zdarzyć, że chcesz pracować tylko z jednym ciągiem znaków, ale chcesz wyodrębnić wartości z dwóch kolumn. Z jakiegoś powodu, jeśli chcesz połączyć ciągi, istnieją dwie opcje, których możesz użyć w przypadku PostgreSQL. Omówmy każdy szczegółowo z odpowiednimi przykładami.

1. Korzystanie z operatora konkatenacji (||)

W PostgreSQL (||) jest operatorem łączenia, którego można używać z ciągami znaków w celu ich łączenia. Możesz mieć więcej niż dwa ciągi i używać tej samej logiki, aby je połączyć.







Na przykład, jeśli masz dwa ciągi znaków – „Linux” i „Wskazówka” które chcesz połączyć, uruchom następujące polecenie:





Pamiętaj, że dodajemy pusty ciąg jako separator. Co więcej, nasze wyniki nazywamy „nazwą”. Pierwszy (|)| operator pojawia się po pierwszym ciągu znaków. Następnie dodajemy pusty ciąg jako separator i drugi operator (||), aby połączyć dwa ciągi. Jeśli masz wiele ciągów, użyj tej samej logiki.





2. Korzystanie z CONCAT()

W przypadku pierwszej opcji konkatenacji możesz zauważyć, że w naszym zapytaniu stworzyliśmy rozwlekłość. Możemy jednak nadać zapytaniu przyzwoitość za pomocą CONCAT(). Zapewnia prostotę łączenia i jest prostszy w użyciu.

Jego składnia jest następująca:



WYBIERZ POŁĄCZ(ciąg1, [separator], ciąg2);

Separator jest opcjonalny, ale zalecamy jego dodanie, aby uzyskać schludny wynik. Wszystko zależy od tego, co chcesz osiągnąć poprzez połączenie.

Aby ponownie uruchomić ten sam przykład, który mieliśmy wcześniej, ale używając CONCAT(), wykonaj następujące polecenie:

WYBIERZ CONCAT('Linux', ' ', 'Podpowiedź');

Otrzymujemy ten sam wynik, ale z bardziej zrozumiałym zapytaniem.

Jeśli chcemy nadać wynikom bardziej niestandardową nazwę, dodaj słowo kluczowe AS, po którym następuje niestandardowa nazwa, której chcemy użyć dla danych wyjściowych.

Poniższy przykład pokazuje, jak nazwaliśmy nasze wyniki „fullname”:

Załóżmy, że nie dodasz separatora. PostgreSQL łączy dwa ciągi, a otrzymasz wynik podobny do poniższego:

Możliwe jest łączenie ciągów, gdy jeden z ciągów ma wartość null. Być może pracujesz z tabelą, a kolumna akceptuje wartość null. W takim przypadku dodanie słów kluczowych „null” działa dobrze i jest traktowane jako pusty ciąg.

Sprawdź poniższy przykład i zobacz jak demonstrujemy taki przypadek:

Załóżmy, że masz tabelę i chcesz połączyć dwie kolumny. Proces jest taki sam, z kilkoma dodatkami. Przygotujmy poniższą tabelę do demonstracji:

Załóżmy, że chcemy wyodrębnić pełne imię i nazwisko każdego ucznia. Musimy połączyć „fname” z „lname”. Nasze polecenie musi określać kolumny docelowe, separator i nazwę tabeli.

Dlatego uruchamiamy go w następujący sposób:

Praca z CONCAT_WS()

Podczas pracy z CONCAT() widzieliśmy, że między ciągami znaków dodawany jest separator. Jednak PostgreSQL oferuje funkcję CONCAT_WS(), która oznacza „z separatorem”, aby umożliwić użytkownikom inny sposób dodania separatora.

W przypadku tej opcji na pierwszym miejscu znajduje się separator, a ciągi można dodać później. Celem jest utworzenie zamówienia w zapytaniu. Aby ponownie uruchomić poprzednie zapytanie, ale używając CONCAT_WS(), mamy następujące polecenie:

Nadal otrzymujemy te same dane wyjściowe, ale zmienia się format polecenia. W ten sposób łączysz ciągi w PostgreSQL.

Wniosek

Łączenie ciągów PostgreSQL jest pomocne w różnych sytuacjach. W tym poście opisano dwie metody szybkiego łączenia ciągów. Wypróbuj je i ćwicz dalej, stosując metodę, która najbardziej Ci odpowiada. To takie proste!