Αντικαταστήστε μια συμβολοσειρά σε SQL

Antikatasteste Mia Symboloseira Se Sql



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

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

Μία από τις πιο ισχυρές συναρτήσεις στην 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() για να εκτελέσουμε αναζήτηση και αντικατάσταση βασισμένη σε μοτίβο κανονικής έκφρασης.