Επειδή πρέπει να υποβάλετε ερωτήματα για ορισμένα δεδομένα στη βάση δεδομένων, το περιεχόμενο του πεδίου μπορεί να περιέχει μόνο κινεζικούς χαρακτήρες, γράμματα και αριθμούς και δεν μπορεί να περιέχει ειδικά σύμβολα (εκτός από ειδικά δεδομένα) Ας ρίξουμε μια ματιά πρώτα στα αποτελέσματα, ως εξής:
Πόροι:
Πώς η βάση δεδομένων sql υποβάλλει ερώτημα σε ένα πεδίο μόνο με αριθμούς και γράμματα ή κινεζικούς χαρακτήρες
- Περιέχει μόνο αριθμούς και γράμματα
Επιλέξτε το όνομα της στήλης από το όνομα του πίνακα όπου REGEXP_LIKE(όνομα στήλης,'^([\u4e00-\u9fa5]+)$')
--Περιέχει μόνο κινεζικούς χαρακτήρες
επιλέξτε όνομα στήλης από το όνομα του πίνακα όπου μήκος(όνομα στήλης)=μήκος(ASCIISTR(όνομα στήλης))-μήκος(αντικατάσταση(ASCIISTR(όνομα στήλης),'\',''))
Σημείωση: Η συνάρτηση asciistr() θα μετατρέψει τη συμβολοσειρά σε τιμή ASCII και εάν ο χαρακτήρας βρίσκεται στον πίνακα κωδικών ASCII, θα μετατραπεί στον αντίστοιχο χαρακτήρα του ASCII. Εάν δεν υπάρχουν, όπως κινεζικοί χαρακτήρες και χαρακτήρες πλήρους πλάτους, θα μετατραπεί σε μορφή \xxxx.
Η συνάρτηση length() μετράει ότι το κινεζικό μήκος είναι 1 και ο κινεζικός χαρακτήρας που αντιστοιχεί στο lengthb() είναι 2 byte. Η παραπάνω δήλωση είναι να συγκρίνουμε τον αριθμό των κινεζικών χαρακτήρων με τον αριθμό των \ μετά τη μετατροπή σε τιμές ASCII, εάν είναι ίσοι, σημαίνει ότι είναι όλοι κινεζικοί χαρακτήρες. (Εάν θέλετε να αποκλείσετε την επιρροή των συμβόλων πλήρους πλάτους, πρέπει πρώτα να αλλάξετε το πεδίο σε μισό πλάτος και η συνάρτηση είναι to_single_byte()).
sqlserver2008r2 αναζητά την πρώτη θέση όπου εμφανίζονται μη κινεζικοί αλφαριθμητικοί αριθμοί
Περιβάλλον: Η δοκιμαστική βάση δεδομένων sqlserver2008r2 έχει μια μέθοδο ταξινόμησης Chinese_PRC_CI_AS και δεν την έχω δοκιμάσει σε άλλα περιβάλλοντα Δήλωση
Επιστρεφόμενη τιμή: 4
Η λύση μου
(Τέλος)
|