Funkcja CONTAT w AWS Redshift służy do połączenia (dołączania) dwóch lub więcej ciągów i zwraca wynikowy ciąg. Rodzaj danych powstałej zmiennej jest taki sam jak zmienne wejściowe do funkcji CONTAT. Funkcja łącząca nie może mieć zastosowania w jednym ciągu. Może mieć zastosowanie na dwóch i więcej niż dwóch strunach. W przypadku, gdy chcemy zastosować funkcję CONAT na więcej niż dwóch ciągach, używana jest zagnieżdżona funkcja łącza. Funkcja łącząca jest równoważna z operatorem konatenacji (||) stosowanym między dwoma ciąży lub wyrażeń.
Składnia funkcji Conat
Składnia funkcji Conat podano w następujący sposób:
1 | Conat (String 1, String 2) |
Gdzie oba argumenty „String 1” i „String 2” może mieć stałą długość lub o zmiennej długości.
Jeśli ciągi wejściowe są różnych typów danych, Amazon Redshift próbuje bezwarunkowo rzucić jeden z ciągów. Jeśli nie można odrzucić wartości, błąd jest zwracany z Amazon Redshift.
Przykłady korzystania z funkcji CONTAT
Weźmy kilka przykładów, aby w pełni zrozumieć działanie funkcji Conat. Ta sekcja zawiera wiele przykładów, aby lepiej zrozumieć funkcję Conat.
Proste połączenie ciągów
W tym przykładzie połączymy dwa struny - „AWS” i „Koperia ku czerwieni”. Użyj następującego zapytania Redshift, aby połączyć te ciągi:
1 | Wybierz Conat („AWS”, „Redshift”); |
Wyjście tego zapytania jest następujące:
1 2 3 | AWS Redshift |
Ten sam wynik można również wygenerować za pomocą operatora konatenacji (||). Użyj następującego zapytania, aby połączyć struny za pomocą operatora konatenacji w klastrze Redshift:
1 | Wybierz „AWS” || ' Przesunięcie ku czerwieni'; |
Wyjście tego zapytania jest następujące:
1 2 3 | AWS Redshift |
Teraz spróbujmy połączyć struny, „21 maja” i „2022”. Poniższe zapytanie Redshift łączy te ciągi za pomocą funkcji Conat:
1 | Wybierz Conat („21 May”, „, 2022”); |
Generuje następujące dane wyjściowe. Pamiętaj, że typ danych tego zapytania jest ciągiem, ponieważ oba parametry wejściowe są ciągami:
1 2 3 | 21 maja 2022 |
Wypróbuj ten sam przykład, ale tym razem za pomocą operatora konatenacji (||). Poniżej znajduje się zapytanie o połączenie tych strun:
1 | Wybierz „21 maja” || ' , 2022 '; |
To zapytanie powoduje następujące dane wyjściowe:
1 2 3 | 21 maja 2022 |
Zagnieżdżone konatenacja
Jeśli chcesz połączyć więcej niż dwa ciągi, używana jest zagnieżdżona funkcja związana. W ten sam sposób operator konatenacji (||) może być również użyty do połączenia dwóch lub więcej niż dwa ciągi w klastrze Redshift Cluster. W tej sekcji wykorzystamy zarówno operatora konatenacji (||), jak i funkcji CONTAT do wdrożenia zagnieżdżonej konatenacji.
W poniższym przykładzie postaramy się połączyć więcej niż dwa ciągi, aby lepiej zrozumieć funkcję Conat. Pierwszy ciąg to dzień, ja.mi. "Sobota". Drugi ciąg to data i miesiąc, ja.mi. „21 maja”. A trzeci ciąg to rok, ja.mi. „2022”.
Następujące zapytanie służy do wdrożenia zagnieżdżonej konkatenacji na tych strunach:
1 | Wybierz Conat („Saturday”, Conat („21 maja”, „2022”)); |
To zapytanie generuje następujące dane wyjściowe:
1 2 3 | Sobota, 21 maja 2022 |
Aby połączyć wiele ciągów, używamy operatora konatenacji (||) zamiast funkcji CONTAT w klastrze Redshift. Operator konatenacji (||) bierze ciągi z obu stron i łączy je w celu wygenerowania danych wyjściowych.
Poniższe zapytanie łączy wiele ciągów za pomocą operatora konatenacji (||):
1 | Wybierz „sobotę” || „21 maja” || '2022'; |
Wyjście tego zapytania jest następujące:
1 2 3 | Sobota, 21 maja 2022 |
Obsługa wartości zerowych w przesunięciu ku czerwieni
W przypadku, gdy przekazamy jedną lub więcej wartości zerowych do funkcji CONTAT, wynik będzie pusty. Aby sprawdzić pustą wartość, uruchomimy przykładowe zapytanie w klastrze Redshift.
W poniższym zapytaniu jednym parametrem funkcji Conat jest NULL:
1 | Wybierz Conat („AWS Redshift”, NULL); |
Po wykonaniu to zapytanie wygeneruje puste wyjście.
Teraz wypróbujemy ten sam przykład za pomocą operatora konatenacji (||) zamiast funkcji Conat:
1 | Wybierz „AWS Redshift” || null; |
Wyjście tego zapytania również będzie puste.
Aby rozwiązać wartość zerową w danych, NVL Polecenie jest używane. NVL Polecenie jest odpowiedzialne za obsługę wartości zerowych w danych.
Teraz bierzemy przykład, w którym używamy NVL do obsługi ZERO parametr. Do tego używamy funkcji obsługi zerowej, i.mi. NVL, do obsługi wartości zerowych.
Następujące zapytanie można użyć do połączenia łańcucha i ZERO parametr obsługiwany przez NVL funkcjonować:
1 | Wybierz Conat („AWS Redshift”, NVL (NULL, ")); |
Generuje następujące dane wyjściowe, biorąc ZERO Parametr jako pusty ciąg:
1 2 3 | AWS Redshift |
Wypróbuj ten sam przykład, ale tym razem za pomocą operatora konatenacji:
1 | Wybierz „AWS Redshift” || Nvl (null, ”); |
Poniżej znajduje się wyjście dla tego zapytania:
1 2 3 | AWS Redshift |
Zastosowanie funkcji Conat w tabeli przesunięcia ku czerwieni
W tej sekcji zastosujemy funkcję Conat w tabeli. Użyjemy zestawu bazy danych przez AWS, aby zastosować funkcję Conat na niej.
Zastosujemy funkcję CONTAT na lokal Tabela dostarczona przez Amazon Redshift. Połączymy oba kolumny Venuename i Venuecity, w których miejsca są większe niż 75000.
Poniższe zapytanie łączy dane Venuename and Venuecity gdzie obiekty są większe niż 75000:
1 2 3 4 5 | Wybierz Conat (Venuename, Venuecity) |
Wyjście tego zapytania jest następujące:
1 2 3 4 5 6 7 8 9 | FedExfieldlandover |
Teraz wypróbuj ten przykład za pomocą operatora konatenacji. Ale łączymy Venuecity and Veuestate tym razem kolumny. Również zmieniamy warunek miejsca do 73500:
1 2 3 4 5 6 7 | Wybierz Venuecity || Venuestate |
Generuje następujący wynik:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | Jacksonvillefl |
Teraz stosujemy koncepcję zagnieżdżonych Concat funkcja w lokal tabela. Zapytanie łączy Venuename and Venuecity Wartości z tabeli. Dodaj także przecinki i przestrzenie do powstałego ciągu:
1 2 3 4 5 6 7 | Wybierz Conat (Conat (VenUename, ','), Venuecity) |
Wyjście tego zapytania jest następujące:
1 2 3 4 5 6 7 8 9 10 11 | Dolphin Stadium, Miami Gardens |
W poniższym przykładzie połączymy kolumnę zawierającą null, aby w pełni zrozumieć koncepcję obsługi Null za pomocą NVL funkcjonować:
1 2 3 4 5 6 7 | Wybierz Conat (Venuename, Conat („Seats”, NVL (VenuesEats, 0)) |
To zapytanie generuje następujący wynik po wykonaniu:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | Ballys Hotel Foots 0 |
Wniosek
W tym artykule omówiliśmy, jak korzystać z funkcji CONTAT za pomocą wielu przykładów. Zastosowaliśmy koncepcję funkcji Conat, zagnieżdżonej funkcji Conat i operatora konatenacji. Zbadaliśmy, jak obsługiwać wartości zerowe w funkcji CONTAT za pomocą funkcji NVL. Funkcja AWS Redshift Conat zapewnia pełny uprawnienie do połączenia dwóch lub więcej ciągów w bazie danych.