Δημιουργήστε υποσυμβολοσειρές συμβολοσειρών στο PostgreSQL

Demiourgeste Yposymboloseires Symboloseiron Sto Postgresql



Υπάρχουν περιπτώσεις όπου μπορεί να θέλετε να εξαγάγετε μια δεδομένη ενότητα (υποσυμβολοσειρά) από μια συμβολοσειρά. Μπορεί να σας ενδιαφέρει μόνο η συγκεκριμένη ενότητα και να θέλετε να αφήσετε έξω το άλλο τμήμα της συμβολοσειράς στην έξοδο σας. Φανταστείτε μια περίπτωση όπου έχετε ένα πλήρες όνομα, όπως 'fname lname' ως μία συμβολοσειρά και θέλετε μόνο να εξαγάγετε το 'fname' στην έξοδο σας. Για αυτό, πρέπει να χρησιμοποιήσετε τη συνάρτηση υποσυμβολοσειράς PostgreSQL. Ετοιμάσαμε έναν λεπτομερή οδηγό για να ακολουθήσετε, με παραδείγματα που θα σας βοηθήσουν να κατανοήσετε πώς μπορείτε να δημιουργήσετε υποσυμβολοσειρές συμβολοσειρών στο PostgreSQL.

Παραδείγματα σχετικά με τον τρόπο δημιουργίας υποσυμβολοσειρών συμβολοσειρών στο PostgreSQL

Το πρώτο πράγμα που πρέπει να ελέγξουμε είναι η σύνταξη.

SUBSTRING( συμβολοσειρά/όνομα_στήλης, θέση_αρχής, μήκος)

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







Παράδειγμα 1: Καθορίστε το μήκος υποσυμβολοσειράς

Όταν έχετε τη συμβολοσειρά-στόχο σας, μπορείτε να ορίσετε πόσο θα πρέπει να είναι η δευτερεύουσα συμβολοσειρά. Για παράδειγμα, εάν έχετε τη συμβολοσειρά σας ως 'Linuxint' και θέλετε να δημιουργήσετε τη συμβολοσειρά σας ως 'Linux', εκτελέστε την ακόλουθη εντολή:



SELECT SUBSTRING('Linuxint' FROM 1 FOR 5) ΩΣ όνομα χρήστη.

Χρησιμοποιούμε τη λέξη-κλειδί FROM για να καθορίσουμε την αρχική μας θέση και τη λέξη-κλειδί FOR για να καθορίσουμε το μήκος της υποσυμβολοσειράς. Το «όνομα χρήστη» είναι το όνομα που δίνουμε στην έξοδο μας.



Λαμβάνουμε την ακόλουθη έξοδο εκτελώντας την εντολή. Παρατηρήστε πώς πήραμε την επιθυμητή υποσυμβολοσειρά ως έξοδο:





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



Για αυτό, εκτελούμε την εντολή μας ως εξής:

Παράδειγμα 2: Καθορίστε τη θέση της υποσυμβολοσειράς

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

Για αυτό το παράδειγμα, έχουμε τη συμβολοσειρά μας ως 'Hello Linuxhint'. Για να λάβουμε το 'Linuxhin' ως υποσυμβολοσειρά μας χωρίς να προσδιορίσουμε τη θέση του, χρειάζεται μόνο να καθορίσουμε σε ποια θέση θέλουμε να δημιουργήσουμε το υποσυμβολοσειρά. Για αυτήν την περίπτωση, ξεκινάμε από τη θέση 6. Έτσι, η εντολή μας είναι η εξής:

SELECT SUBSTRING ('Hello Linuxhint' FROM 6) ΩΣ όνομα χρήστη.

Παράδειγμα 3: Καθορίστε τις θέσεις έναρξης και λήξης

Με δεδομένη μια συμβολοσειρά, μπορείτε να δημιουργήσετε μια δευτερεύουσα συμβολοσειρά καθορίζοντας τις θέσεις έναρξης και λήξης. Με αυτόν τον τρόπο, ακόμα κι αν το μήκος της συμβολοσειράς είναι μεγαλύτερο από την επιθυμητή υποσυμβολοσειρά, θα τη δημιουργήσει μόνο με βάση τις καθορισμένες θέσεις έναρξης και τέλους.

Χρησιμοποιώντας το 'Hello Linuxhint' ως συμβολοσειρά μας, μπορούμε να δημιουργήσουμε τη δευτερεύουσα συμβολοσειρά μας ως 'Hello Linux' και να παραλείψουμε τις άλλες ενότητες καθορίζοντας τις θέσεις έναρξης και λήξης ως εξής:

SELECT SUBSTRING('Hello Linuxhint', 1, 11) AS username;

Δεν απαιτείται λέξη-κλειδί για αυτήν την περίπτωση, μόνο οι θέσεις έναρξης και λήξης.

Παράδειγμα 4: Εργασία με έναν πίνακα PostgreSQL

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

Ας υποθέσουμε ότι στοχεύουμε τη στήλη 'cust_email' και θέλουμε να δημιουργήσουμε μια δευτερεύουσα συμβολοσειρά καθορίζοντας το μήκος. Θα είχαμε τις εντολές μας ως εξής:

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

Ας ενημερώσουμε τον πίνακα με ένα πλήρες όνομα στη στήλη του ονόματός μας. Ο νέος μας πίνακας έχει ως εξής:

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

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

Εκτελούμε την εντολή μας ως εξής:

SELECT order_id, SUBSTRING(name FROM 1 FOR POSITION( ‘ ‘ IN name) – 1) AS client_fname FROM πελάτες;

Επιλέγουμε το «order_id» και τη δευτερεύουσα συμβολοσειρά και η έξοδος μας εμφανίζεται ως εξής:

Έτσι μπορείτε να δημιουργήσετε δευτερεύουσες συμβολοσειρές από συμβολοσειρές σε έναν πίνακα PostgreSQL.

συμπέρασμα

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