Funkcja Concat Redshift

Funkcja Concat Redshift

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
  • Zagnieżdżone konatenacja
  • Obsługa wartości zerowych
  • Zastosowanie funkcji Conat w tabeli przesunięcia ku czerwieni

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
(1 rząd)

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
(1 rząd)

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
(1 rząd)

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
(1 rząd)

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
(1 rząd)

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
(1 rząd)

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
(1 rząd)

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
(1 rząd)

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)
z miejsca
gdzie miejsca> 2000;

Wyjście tego zapytania jest następujące:

1
2
3
4
5
6
7
8
9
FedExfieldlandover
New York Giants Stadiumeast Rutherford
Arrowhead Stadiumkansas City
Invesco Fielddenver
(4 wiersze)

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
z miejsca
gdzie miejsca> 73500
zamówienie według miejsc;

Generuje następujący wynik:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Jacksonvillefl
Orchard Parkny
Miami Gardensfl
Denverco
Kansas Citymo
East Rutherfordnj
Landovermd
(7 wierszy)

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)
z miejsca
gdzie lokki> 74000
zamówienie według miejsc;

Wyjście tego zapytania jest następujące:

1
2
3
4
5
6
7
8
9
10
11
Dolphin Stadium, Miami Gardens
Pole Invesco, Denver
Stadion strzały, Kansas City
New York Giants Stadium, East Rutherford
FedExfield, Landover
(5 wierszy)

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))
z miejsca, w którym enuestate = „nc” lub enuestate = „nv”
Zamów przez 1
Limit 7;

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
Hotel Hilton Hotel 0
Bellagio Hotel Miejsce 0
Bank of America Stadium siedzenia 73298
Pałac Caesars Siedzenia 0
Luksor Hotel Foots 0
Hotel Harrahs Hotel 0
(7 wierszy)

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.