W związku z tym manipulacja ciągami jest częstym zadaniem polegającym na manipulowaniu i przekształcaniu wartości ciągów do określonego formatu.
Jedną z najpotężniejszych funkcji SQL, która zajmuje się operacjami na łańcuchach, jest funkcja REGEXP_REPLACE(). Ta funkcja pozwala nam na wyszukiwanie i zamianę w oparciu o wyrażenia regularne. Jeśli znasz wyrażenia regularne, wiesz, jak potężna może być ta funkcja.
W tym samouczku dowiemy się, jak możemy wykorzystać tę funkcję do wyszukiwania i zamiany ciągów w bazie danych SQL.
SQL REGEXP_REPLACE
SQL REGEXP_REPLACE() to funkcja, która pozwala nam wykonać dopasowywanie i zastępowanie wzorców w oparciu o wyrażenia regularne w obrębie danego ciągu.
Wyrażenie regularne lub wyrażenie regularne to zestaw wzorców i symboli zastępczych, które pozwalają nam dopasowywać i manipulować ciągami lub podciągami, które podążają za określonym wzorcem.
Warto pamiętać, że każdy silnik bazy danych może w niewielkim stopniu implementować składnię i funkcjonalność funkcji.
Możemy jednak wyrazić jego składnię w następujący sposób:
REGEXP_REPLACE(ciąg_wejściowy, wzór, zamiana [, flagi])
Parametry funkcji są wyrażone w następujący sposób:
- input_string – Określa ciąg, w którym chcemy wyszukiwać i zamieniać.
- Wzorzec – określa wzorzec wyrażenia regularnego, który chcemy dopasować w ciągu wejściowym.
- Zastąpienie — określa ciąg, który zastępuje dopasowane podciągi.
- Flagi — zestaw opcjonalnych flag, które mogą pomóc w modyfikowaniu funkcjonalności wyrażenia regularnego. Na przykład możemy włączyć wyszukiwanie globalne, dopasowywanie bez uwzględniania wielkości liter itp. Ta funkcja różni się w zależności od silnika bazy danych.
Przykłady:
Aby lepiej zrozumieć działanie tej funkcji, spójrzmy na kilka przykładów, jak z niej korzystać.
Przykład 1: Podstawowe użycie
Załóżmy, że mamy tabelę zawierającą informacje o pracownikach, jak pokazano w poniższym przykładowym wyniku:
Rozważmy przypadek, w którym chcemy zamienić wystąpienie ciągu „Charlie” na „Matthew”. Zapytania możemy użyć w następujący sposób:
WYBIERAĆREGEXP_REPLACE(imię, 'Charlie', 'Mateusz') AS nowa_imie
Z
pracownicy;
Podany przykład ilustruje podstawowe wyszukiwanie i zamianę w celu znalezienia ciągu „Charlie” z kolumny „imię” i zastąpienie go ciągiem „Mateusz”.
Wyjście:
Przykład 2: Wymiana bez uwzględniania wielkości liter
W niektórych przypadkach możesz chcieć przeprowadzić wyszukiwanie bez rozróżniania wielkości liter. Oznacza to, że funkcja będzie sprawdzać tylko zawartość ciągu, a nie rzeczywistą wielkość liter alfanumerycznych.
W takim przypadku używamy „i” jako flagi funkcji w następujący sposób:
WYBIERZ REGEXP_REPLACE(opis_produktu, Samsung, Apple, 'i') JAKO zmodyfikowaneZ produktów;
Ustawiając flagę na „i”, funkcja dopasowuje wszystkie słowa pasujące do „Samsung”, niezależnie od wielkości liter.
Wniosek
W tym przykładzie omówiliśmy, jak używać funkcji REGEXP_REPLACE() i pracować z nią w celu wyszukiwania i zamiany w oparciu o wzorce wyrażeń regularnych.