SQL REGEXP_REPLACE

Sql Regexp Replace



Τα δεδομένα κειμένου ή οι συμβολοσειρές, όπως τα αποκαλούν οι προγραμματιστές, είναι ένα σημαντικό δομικό στοιχείο για κάθε λειτουργικό πρόγραμμα. Αυτό δεν είναι διαφορετικό όταν πρόκειται για την αποθήκευση των δεδομένων. Σχεδόν όλες οι βάσεις δεδομένων περιέχουν κάποια μορφή πληροφοριών κειμένου όπως ονόματα, αρχεία καταγραφής κ.λπ.

Ως εκ τούτου, ο χειρισμός συμβολοσειράς είναι μια κοινή εργασία που περιλαμβάνει τον χειρισμό και τη μετατροπή των τιμών συμβολοσειράς σε μια συγκεκριμένη μορφή.

Μία από τις πιο ισχυρές συναρτήσεις στην SQL που ασχολείται με λειτουργίες συμβολοσειράς είναι η συνάρτηση REGEXP_REPLACE(). Αυτή η συνάρτηση μας επιτρέπει να εκτελέσουμε την αναζήτηση και αντικατάσταση βασισμένη σε τυπικές εκφράσεις. Εάν είστε εξοικειωμένοι με την κανονική έκφραση, γνωρίζετε πόσο ισχυρή μπορεί να είναι αυτή η λειτουργία.







Σε αυτό το σεμινάριο, θα μάθουμε πώς μπορούμε να χρησιμοποιήσουμε αυτή τη συνάρτηση για να αναζητήσουμε και να αντικαταστήσουμε τις συμβολοσειρές στη βάση δεδομένων SQL.



SQL REGEXP_REPLACE

Η SQL REGEXP_REPLACE() είναι μια συνάρτηση που μας επιτρέπει να εκτελέσουμε την αντιστοίχιση και αντικατάσταση προτύπων βασισμένη σε κανονικές εκφράσεις μέσα σε μια δεδομένη συμβολοσειρά.



Η τυπική έκφραση, ή regex, είναι ένα σύνολο μοτίβων και κράτησης θέσης που μας επιτρέπει να αντιστοιχίσουμε και να χειριστούμε τις συμβολοσειρές ή τις υποσυμβολοσειρές που ακολουθούν ένα συγκεκριμένο μοτίβο.





Είναι καλό να έχετε κατά νου ότι κάθε μηχανή βάσης δεδομένων μπορεί να υλοποιεί ελαφρώς τη σύνταξη και τη λειτουργικότητα της συνάρτησης.

Ωστόσο, μπορούμε να εκφράσουμε τη σύνταξή του ως εξής:



REGEXP_REPLACE (συμβολοσειρά_εισόδου, μοτίβο, αντικατάσταση [, σημαίες])

Οι παράμετροι συνάρτησης εκφράζονται ως εξής:

  1. input_string – Αυτό καθορίζει τη συμβολοσειρά εντός της οποίας θέλουμε να αναζητήσουμε και να αντικαταστήσουμε.
  2. Μοτίβο – Αυτό καθορίζει το μοτίβο τυπικής έκφρασης που θέλουμε να αντιστοιχίσουμε στη συμβολοσειρά εισόδου.
  3. Αντικατάσταση – Αυτό καθορίζει τη συμβολοσειρά που θα αντικαταστήσει τις αντιστοιχισμένες υποσυμβολοσειρές.
  4. Σημαίες – Αυτό είναι ένα σύνολο προαιρετικών σημαιών που μπορούν να βοηθήσουν στην τροποποίηση της λειτουργικότητας της τυπικής έκφρασης. Για παράδειγμα, μπορούμε να ενεργοποιήσουμε την καθολική αναζήτηση, την αντιστοίχιση χωρίς διάκριση πεζών-κεφαλαίων κ.λπ. Αυτή η δυνατότητα ποικίλλει ανάλογα με τη μηχανή βάσης δεδομένων.

Παραδείγματα:

Για να κατανοήσουμε καλύτερα πώς λειτουργεί αυτή η λειτουργία, ας δούμε μερικά παραδείγματα για τον τρόπο χρήσης της.

Παράδειγμα 1: Βασική χρήση

Ας υποθέσουμε ότι έχουμε έναν πίνακα που περιέχει τις πληροφορίες των εργαζομένων όπως φαίνεται στο ακόλουθο παράδειγμα εξόδου:

Εξετάστε μια περίπτωση όπου θέλουμε να αντικαταστήσουμε την εμφάνιση της συμβολοσειράς 'Charlie' με 'Matthew'. Μπορούμε να χρησιμοποιήσουμε το ερώτημα ως εξής:

ΕΠΙΛΕΓΩ

REGEXP_REPLACE(first_name, 'Charlie', 'Matthew') AS new_name

ΑΠΟ

υπαλλήλους;

Το συγκεκριμένο παράδειγμα δείχνει μια βασική αναζήτηση και αντικατάσταση για να βρείτε τη συμβολοσειρά 'Charlie' από τη στήλη 'first_name' και να την αντικαταστήσετε με 'Matthew'.

Παραγωγή:

Παράδειγμα 2: Αντικατάσταση χωρίς διάκριση πεζών-κεφαλαίων

Σε ορισμένες περιπτώσεις, μπορεί να θέλετε να πραγματοποιήσετε αναζήτηση χωρίς διάκριση πεζών-κεφαλαίων. Αυτό σημαίνει ότι η συνάρτηση θα εξετάζει μόνο το περιεχόμενο της συμβολοσειράς και όχι το πραγματικό περίβλημα των αλφαριθμητικών γραμμάτων.

Σε μια τέτοια περίπτωση, χρησιμοποιούμε το 'i' ως σημαία συνάρτησης ως εξής:

SELECT REGEXP_REPLACE(product_description, Samsung, Apple, 'i') ΩΣ τροποποιημένο

ΑΠΟ προϊόντα?

Ορίζοντας τη σημαία σε 'i', η συνάρτηση ταιριάζει με όλες τις λέξεις που ταιριάζουν με το 'Samsung', ανεξάρτητα από το περίβλημα.

συμπέρασμα

Σε αυτό το παράδειγμα, εξερευνήσαμε τον τρόπο χρήσης και εργασίας με τη συνάρτηση REGEXP_REPLACE() για την εκτέλεση της αναζήτησης και αντικατάστασης βάσει μοτίβων τυπικής έκφρασης.