Funkcja substringowa przesunięcia ku czerwieni

Funkcja substringowa przesunięcia ku czerwieni
Podłoże czerwonego jest funkcją stosowaną do wyodrębnienia wymaganego podkładu z istniejącego ciągu na podstawie pozycji początkowej i długości podrzędu. Celem funkcji substringowej jest zwrócenie określonej części ciągu. Deweloperzy baz danych szeroko używają tej funkcji w zapytaniach, aby uzyskać określoną część ciągu. Ten blog opisuje, w jaki sposób funkcję podłoża może być używana na różne sposoby do zapytania o dane z klastra Redshift.

Składnia funkcji substring

Podstawowa i najczęściej używana składnia dla funkcji pod substring jest następująca, gdzie łańcuch znaków jest głównym ciągiem, z którego wyodrębnimy podajniki. pozycja startowa jest pozycją pierwszego charakteru podłańca w głównym ciągu i długość_ofarakterów to liczba znaków w podjazdach:

1
Substring (charakter_string, start_position, długość_of_characters);

LUB

1
Substring (charakter_string z start_position [dla numeru_haracters]);

Możesz także wyodrębnić podłoże danych binarnych za pomocą następującej składni, gdzie Binary_Expression to dane binarne z typem danych varbyte. start_byte jest pozycją pierwszego bajtu podłacia wyodrębnionego z danych binarnych i Number_Bytes to liczba bajtów, które podłoże będzie zawierać.

Jeśli nie określisz Number_Bytes W funkcji podkładu wyodrębni podłoże zaczynające start_byte do końca danych binarnych.

1
Substring (Binary_Expression, start_byte, numer_bytes);


LUB

1
Substring (Binary_Expression, start_byte);

Za pomocą funkcji podłoża

Do tej pory omówiliśmy składnię funkcji substring. W tej sekcji zobaczymy, w jaki sposób można użyć tej funkcji. Omówmy kilka przykładów, aby zrozumieć działanie funkcji podkładu:

Funkcję podłoża może być używana do zapytania o dane z klastra Redshift z wybranymi zapytaniami. W niniejszej sekcji użyje funkcji podłoża z zapytaniem Wybierz.

Następujące zapytanie zwróci PRZESUNIĘCIE KU CZERWIENI Po wykonaniu na przesunięciu ku czerwieni:

1
Wybierz Substring („AWS Redshift”, 5,8);

Poniższa tabela pokazuje liczbę znaków w AWS Redshift strunowy. Przestrzeń między AWS i przesunięcie ku czerwieni jest również liczony jako postać.

A W S R mi D S H I F T
1 2 3 4 5 6 7 8 9 10 11 12

Pozycja początkowa to 5, a znak z 5. liczby to r. Długość postaci wynosi 8, co oznacza, że ​​zaczyna się od litery, r, osiem znaków zostanie zwróconych.


Podobnie powróci następujące zapytanie AWS Po wykonaniu podczas przesunięcia ku czerwieni. Pierwszą postacią jest A, a całkowita liczba podłoża wynosi 3; Dlatego zwróci podłoże AWS.

1
Wybierz Substring („AWS Redshift”, 1,3);

Jeśli start_position+Long_Of_Characters jest większy niż całkowita liczba znaków w łańcuch znaków, Redshift zwróci wartość od pozycji początkowej do końca ciągu.

Ponadto, jeśli długość znaku nie jest określona, ​​funkcja podkładu zwraca wartość od pozycji początkowej do końca ciągu.

1
Wybierz Substring („AWS Redshift”, 7,8);

LUB

1
Wybierz Substring („AWS Redshift”, 7);

W obu przypadkach wyjście będzie Dshift, Jak pokazano na poniższym rysunku:


Jeśli pozycja początkowa jest zerowa lub mniejsza niż zerowa (ujemna), funkcja podkładu zwróci podłoże zaczynające się na pierwszym charakterze łańcuch znaków z długością start_position+długość_of_characters-1.

1
Wybierz Substring („AWS Redshift”,-3,7);

Wyjście będzie AWS, Jak pokazano na poniższym rysunku:


Jeśli start_position+długość_of_characters-1 jest mniejsza lub równa zero, funkcja podrzędu zwróci pusty ciąg.

1
Wybierz Substring („AWS Redshift”,-5,4);

Wyjście tego zapytania będzie pusty, Jak pokazano na poniższym rysunku:


Poniższe zapytanie utworzy Tabela AWS_REDSHIFT_SUBSTRING do klastra Redshift z określonymi atrybutami:

1
2
3
4
5
6
7
Utwórz tabelę AWS_REDSHIFT_SUBSSTRING (
S_no int,
PersonName Varchar (255)
);

Włóż dane do tabeli za pomocą metody wstawienia.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Wstaw wartości AWS_REDSHIFT_SUBSSTRING (1, „MR. Dwayne Johnson');
Wstaw wartości AWS_REDSHIFT_SUBSSTRING (2, „MR. Vin Diesel');
Wstaw wartości AWS_REDSHIFT_SUBSSTRING (3, „MR. Will Smith');
Wstaw wartości AWS_REDSHIFT_SUBSSTRING (4, „MR. Robert Downey Jr.');
Wstaw wartości AWS_REDSHIFT_SUBSSTRING (5, „MR. Chris Hemsworth ');
Wstaw wartości AWS_REDSHIFT_SUBSSTRING (6, „MR. Leonardo DiCaprio ');
Wstaw wartości AWS_REDShift_SubString (7, „MR. Ryan Reynolds');
Wstaw wartości AWS_REDSHIFT_SUBSSTRING (8, „MR. Chris Pratt ');
Wstaw wartości AWS_REDSHIFT_SUBSSTRING (9, „MR. Hugh Jackman');
Wstaw wartości AWS_REDShift_SubString (10, „MR. Mark Wahlberg');

Poprzednie zapytania wstawią dane do tabeli. Teraz wybierz wartości z tabeli za pomocą następującego zapytania:

1
Wybierz * z AWS_REDSHIFT_SUBSSTRING;
S_NO imię osoby
1 Pan. Dwayne Johnson
2 Pan. Vin Diesel
3 Pan. Will Smith
4 Pan. Robert Downey Jr.
5 Pan. Chris Hemsworth
6 Pan. Leonardo DiCaprio
7 Pan. Ryan Reynolds
8 Pan. Chris Pratt
9 Pan. Hugh Jackman
10 Pan. Mark Wahlberg

Teraz zastosuj niektóre funkcje podkładu w tej tabeli. Wyodrębniamy tylko nazwy, zaniedbując tytuł. W tym celu uruchom następujące zapytanie:

1
Wybierz *, Substring (personName, 4) jako nowa nazwa_patilna z AWS_REDSHIFT_SUBSSTRING;

To zapytanie zwróci podkład imię osoby Kolumna do nowej kolumny.

S_NO imię osoby nowe imie
1 Pan. Dwayne Johnson Dwayne Johnson
2 Pan. Vin Diesel Vin Diesel
3 Pan. Will Smith Will Smith
4 Pan. Robert Downey Jr. Robert Downey Jr.
5 Pan. Chris Hemsworth Chris Hemsworth
6 Pan. Leonardo DiCaprio Leonardo DiCaprio
7 Pan. Ryan Reynolds Ryan Reynolds
8 Pan. Chris Pratt Chris Pratt
9 Pan. Hugh Jackman Hugh Jackman
10 Pan. Mark Wahlberg Mark Wahlberg


Podobnie możemy uzyskać podstęp imię osoby Korzystanie z następującego zapytania wyboru wraz z funkcją podłoża:

1
Wybierz *, Substring (personName od 1 za 3) jako tytuł z AWS_REDSHIFT_SUBSSTRING;

To wyodrębni jedyny tytuł, jednocześnie zaniedbując pełną nazwę.

S_NO imię osoby tytuł
1 Pan. Dwayne Johnson Pan.
2 Pan. Vin Diesel Pan.
3 Pan. Will Smith Pan.
4 Pan. Robert Downey Jr. Pan.
5 Pan. Chris Hemsworth Pan.
6 Pan. Leonardo DiCaprio Pan.
7 Pan. Ryan Reynolds Pan.
8 Pan. Chris Pratt Pan.
9 Pan. Hugh Jackman Pan.
10 Pan. Mark Wahlberg Pan.

Wniosek

W tym artykule omówiono, w jaki sposób moglibyśmy użyć funkcji substring do uruchamiania zapytań w klastrze Redshift. Wyodrębnienie zmodyfikowanych danych z bazy danych jest dużym zadaniem i można je wykonać za pomocą funkcji podkładu. Korzystanie z funkcji substring może pomóc uniknąć modyfikacji danych dotyczących zapytania, ponieważ otrzymuje zmodyfikowane dane.