Το 1s 8 είναι παρόμοιο στο αίτημα. Παρόμοια με τις συνθήκες ερωτήματος. Χρησιμοποιώντας τον τελεστή "μου αρέσει".

Ας δούμε τον σκοπό και τη χρήση του τελεστή υπό όρους LIKE (αγγλ. LIKE)στη γλώσσα ερωτημάτων 1C σε παραδείγματα.

Γρήγορο πέρασμα

Σκοπός

Ελέγξτε εάν η τιμή συμβολοσειράς στο αίτημα ταιριάζει με το καθορισμένο μοτίβο - επιστρέφει μια Boolean τιμή (TRUE ή FALSE).

  • Η επιταγή είναι ανεξάρτητη κατά περίπτωση.
  • Το ερώτημα χρησιμοποιεί ευρετήρια πίνακα—δεν σχετίζονται με ευρετήρια αναζήτησης πλήρους κειμένου.
  • Μπορεί να χρειαστεί πολύς χρόνος για να ολοκληρωθεί με μεγάλα τραπέζια.
  • Οι συμβολοσειρές απεριόριστου μήκους θα πρέπει να μετατραπούν χρησιμοποιώντας τη συνάρτηση SUBSTRING

Χώροι χρήσης

  • Σύμφωνα με τους όρους του χειριστή WHERE
  • Στις συνθήκες σχεδιασμού ΕΠΙΛΟΓΗ ΠΟΤΕ<>ΜΕΤΑ "" ΑΛΛΟ "" ΤΕΛΟΣ
  • Στα πεδία επιλογής (για παράδειγμα: Όνομα LIKE &ParameterSimilar to StringSuitable)

Περιγραφή της σύνταξης του τελεστή LIKE

Η παράμετρος τελεστή πρέπει να είναι συμβολοσειρά: μπορεί να καθοριστεί ως σταθερά ή να μεταβιβαστεί ως παράμετρος αιτήματος.

Τα κυριολεκτικά (μάσκες) που αναφέρονται παρακάτω μπορούν να χρησιμοποιηθούν μαζί ή χωριστά.

Ακριβής προδιαγραφή συμβολοσειράς

ΕΠΙΛΕΞΤΕ πρώτοι 10
Κλειδιά.Όνομα
ΑΠΟ
Directory.Keys AS Keys
ΟΠΟΥ
Keys.Name SIMILAR to "1" // Iquivalent to Keys.Name ="1"

Αποτέλεσμα:

Το % είναι μια κυριολεκτική έννοια ενός αυθαίρετου αριθμού οποιωνδήποτε χαρακτήρων

ΕΠΙΛΕΞΤΕ πρώτοι 10
Κλειδιά.Όνομα
ΑΠΟ
Directory.Keys AS Keys
ΟΠΟΥ
Keys.Name LIKE "%"

Αποτέλεσμα: οποιαδήποτε 10 αντικείμενα

_ (υπογράμμιση): κυριολεκτική αντιστοίχιση οποιουδήποτε χαρακτήρα

Παράδειγμα #1:

ΕΠΙΛΕΞΤΕ πρώτοι 10
Κλειδιά.Όνομα
ΑΠΟ
Directory.Keys AS Keys
ΟΠΟΥ
Keys.Name LIKE "_"

Παράδειγμα #2:ξεκινώντας με οποιονδήποτε χαρακτήρα, ακολουθούμενο από "1" και μετά οποιονδήποτε χαρακτήρα

ΕΠΙΛΕΞΤΕ πρώτοι 10
Κλειδιά.Όνομα
ΑΠΟ
Directory.Keys AS Keys
ΟΠΟΥ
Keys.Name SIMILAR to "_1%"

Αποτέλεσμα:

(ένας ή περισσότεροι χαρακτήρες σε αγκύλες)

  • Κάθε κυριολεκτικό που ταιριάζει με οποιονδήποτε χαρακτήρα χρησιμοποιείται ως OR.
    Είναι αποδεκτό να καθορίσετε ένα εύρος, για παράδειγμα a-z, 0-5, που σημαίνει έναν αυθαίρετο χαρακτήρα από το καθορισμένο εύρος

Παράδειγμα

ΕΠΙΛΕΞΤΕ πρώτοι 10
Κλειδιά.Όνομα
ΑΠΟ
Directory.Keys AS Keys
ΟΠΟΥ
Keys.Name SIMILAR to "[l]%"

Αποτέλεσμα: 10 που αρχίζει με "l" ή "z"

Παράδειγμα:ξεκινώντας με 5,6,7

ΕΠΙΛΕΞΤΕ πρώτοι 10
Κλειδιά.Όνομα
ΑΠΟ
Directory.Keys AS Keys
ΟΠΟΥ
Keys.Name LIKE "%"

Αποτέλεσμα:

[^] (σε αγκύλες υπάρχει ένα σύμβολο διαφυγής ^ ακολουθούμενο από έναν ή περισσότερους χαρακτήρες)

Ισοδυναμεί με οποιονδήποτε χαρακτήρα (_) εκτός από αυτούς που καθορίζονται ()

Παράδειγμα

ΕΠΙΛΕΞΤΕ πρώτοι 10
Κλειδιά.Όνομα
ΑΠΟ
Directory.Keys AS Keys
ΟΠΟΥ
Keys.Name SIMILAR to "8.[^012]%"//δεν περιλαμβάνουν 8.0,8.1,8.2

Αποτέλεσμα: όλα ξεκινούν με "8." εξαιρουμένων αυτών που αναφέρονται

ΕΙΔΙΚΟΣ ΧΑΡΑΚΤΗΡΑΣ - εντολή για τον καθορισμό των χαρακτήρων που καταχωρήθηκαν παραπάνω στο αίτημα

Ως σύμβολο υπηρεσίας, είναι αποδεκτή η χρήση τουλάχιστον: #,~,/,\

Παράδειγμα:

ΕΠΙΛΕΞΤΕ πρώτοι 10
Κλειδιά.Όνομα
ΑΠΟ
Directory.Keys AS Keys
ΟΠΟΥ
Keys.Name LIKE "#_" ΕΙΔΙΚΟΣ ΧΑΡΑΚΤΗΡΑΣ "#"

Αποτέλεσμα:

Δυνατότητα εφαρμογής σε πλατφόρμες

Λανθασμένες παράμετροι LIKE<>

  • Η παράμετρος δεν έχει περάσει τύπος χορδής: για παράδειγμα ο αριθμός 1 αντί για τη συμβολοσειρά "1"
  • Ένα πεδίο τύπου χωρίς συμβολοσειρά συγκρίνεται με μια έγκυρη μάσκα (για παράδειγμα, μια σύνδεση) ή κατά τη σύνδεση, η τιμή δεν ελέγχεται για IsNUL

Δώστε προσοχή στο κείμενο σφάλματος όπου εμφανίζεται η ερώτηση:

Κλειδιά.Όνομα ΟΜΟΙΟ<>&Λ

Μερικές φορές προκύπτει μια κατάσταση όταν στο 1C 8.3 ή 8.2 πρέπει να κάνετε μια επιλογή, για παράδειγμα, από έναν κατάλογο όλων των στοιχείων που έχουν τη λέξη "glaze" στο όνομά τους. Ή, από τον κατάλογο, επιλέξτε όλους τους εργολάβους των οποίων τα επώνυμα περιέχουν τη λέξη "Ivan". Γενικά, ελέγξτε κάποια τιμή συμβολοσειράς.

Για το σκοπό αυτό, υπάρχει ένας τελεστής στα ερωτήματα 1C 8.3 και 8.2 - "Παρόμοιο". Χρησιμοποιείται, αντίστοιχα, στις ακόλουθες συνθήκες:

Λάβετε 267 μαθήματα βίντεο στο 1C δωρεάν:

Πώς να χρησιμοποιήσετε πρότυπα σε ερωτήματα 1C;

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

Για παράδειγμα, ο χαρακτήρας "%" επιτρέπει οποιαδήποτε ακολουθία αυθαίρετων χαρακτήρων:

Υπάρχουν και άλλοι ειδικοί χαρακτήρες:

  • % (ποσοστό) - επιτρέπει οποιαδήποτε ακολουθία αυθαίρετων χαρακτήρων.
  • _ (υπογράμμιση) - οποιοσδήποτε μεμονωμένος χαρακτήρας.
  • […] – ένας αυθαίρετος χαρακτήρας από αυτούς που αναφέρονται στις αγκύλες. Εκτός από την καταχώριση χαρακτήρων, μπορείτε να χρησιμοποιήσετε εύρη. Παράδειγμα: a-o;
  • [^...] – το ίδιο με το προηγούμενο, αλλά αντίστροφα. Το σύμβολο "^" σημαίνει άρνηση.

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

Για τον χειριστή ΑΡΕΣΕΙΥπάρχουν ειδικοί χαρακτήρες υπηρεσίας που δεν γίνονται αντιληπτοί ως συμβολοσειρά:

  • Σύμβολο "%" τοις εκατό: υποδηλώνει την παρουσία οποιουδήποτε αριθμού αυθαίρετων χαρακτήρων σε μια συμβολοσειρά
  • "[...]" ένας ή περισσότεροι χαρακτήρες σε αγκύλες: υποδηλώνει την παρουσία οποιουδήποτε (ενός) από τους χαρακτήρες που αναφέρονται. Επίσης, μπορεί να καθοριστεί μια σειρά χαρακτήρων (για παράδειγμα)
  • "_" υπογράμμιση: υποδηλώνει την παρουσία οποιουδήποτε αυθαίρετου χαρακτήρα
  • "[^...]" χαρακτήρας άρνησης: υποδηλώνει την παρουσία οποιουδήποτε μεμονωμένου χαρακτήρα εκτός από αυτούς που καθορίζονται σε αγκύλες
Εάν πρέπει να καθορίσετε έναν από τους παραπάνω ειδικούς χαρακτήρες για σύγκριση, πρέπει να χρησιμοποιήσετε τη λέξη-κλειδί "ΕΙΔΙΚΟ ΣΥΜΒΟΛΟ"

Δυνατότητες χρήσης με διάφορα DBMS

IBM DB2"Μόνο μια παράμετρος μπορεί να τοποθετηθεί στα δεξιά του τελεστή SIMILAR. Οι μόνοι χαρακτήρες μπαλαντέρ είναι "_" (υπογράμμιση που σημαίνει οποιοσδήποτε χαρακτήρας) και "%" (το ποσοστό σημαίνει μια ακολουθία οποιωνδήποτε χαρακτήρων).
Σε περίπτωση χρήσης DBMS " PostgreSQL" ή " Βάση δεδομένων Oracle"οι ειδικοί χαρακτήρες "αγκύλες [...]" γίνονται αποδεκτοί μόνο εάν καθορίζονται στο κείμενο της αίτησης και ΔΕΝ μεταβιβάζονται ως παράμετρος στο αίτημα.

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

Παράδειγμα: επιλέξτε προϊόντα που περιέχουν το σύμβολο "%" στο όνομα

ΕΠΙΛΟΓΗ | Αναφ.Σύνδεσμος |FROM | Κατάλογος Ονοματολογία ΠΩΣ Ref | WHERE | Ref.Name LIKE "%\%" ΕΙΔΙΚΟΣ ΧΑΡΑΚΤΗΡΑΣ "\"

Παράδειγμα: επιλέξτε προϊόντα των οποίων τα ονόματα αρχίζουν με τη λέξη "Tank"

ΕΠΙΛΟΓΗ | Αναφ.Σύνδεσμος |FROM | Κατάλογος Ονοματολογία ΠΩΣ Ref | WHERE | Ref.Name SIMILAR to "Bak%"

Παράδειγμα: επιλέξτε προϊόντα των οποίων τα ονόματα τελειώνουν με έναν αριθμό

ΕΠΙΛΟΓΗ | Αναφ.Σύνδεσμος |FROM | Κατάλογος Ονοματολογία ΠΩΣ Ref | WHERE | Ref.Name SIMILAR to "%"

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

Μετά τον έλεγχο, επιστρέφει Σωστό ή Λάθος· κατά συνέπεια, χρησιμοποιείται ενεργά σε συνθήκες.
Οι ακόλουθοι χαρακτήρες υπηρεσίας χρησιμοποιούνται για τη δημιουργία ενός προτύπου:

  • % (ποσοστό) - μια ακολουθία που περιέχει οποιονδήποτε αριθμό αυθαίρετων χαρακτήρων
  • _ (υπογράμμιση) - ένας αυθαίρετος χαρακτήρας
  • […] (ένας ή περισσότεροι χαρακτήρες σε αγκύλες) - οποιοσδήποτε μεμονωμένος χαρακτήρας παρατίθεται μέσα στις αγκύλες
    Επίσης εκτός διάφορους χαρακτήρεςμπορείτε να χρησιμοποιήσετε εύρη, για παράδειγμα a-z(A-z), που σημαίνει ότι υπάρχει ένας αυθαίρετος χαρακτήρας που περιλαμβάνεται στο εύρος, συμπεριλαμβανομένων των άκρων του εύρους.
  • [^...] (σε αγκύλες ένα σύμβολο άρνησης ακολουθούμενο από έναν ή περισσότερους χαρακτήρες) - οποιοσδήποτε μεμονωμένος χαρακτήρας εκτός από αυτούς που αναφέρονται μετά το σύμβολο άρνησης

Τα υπόλοιπα σύμβολα χρησιμοποιούνται για τον προορισμό τους.
Εάν είναι απαραίτητο να μεταδοθεί ένας από τους παραπάνω χαρακτήρες υπηρεσίας ως σύμβολο, τότε πρέπει να προηγείται<Спецсимвол>. Εγώ ο ίδιος<Спецсимвол>(οποιοδήποτε κατάλληλο σύμβολο) ορίζεται στην ίδια δήλωση μετά λέξη-κλειδίΕΙΔΙΚΟ ΣΥΜΒΟΛΟ.
Για παράδειγμα, το μοτίβο "%ABV[abvg]\_abv%" ΕΙΔΙΚΟΣ ΧΑΡΑΚΤΗΡΑΣ "\" σημαίνει μια υποσυμβολοσειρά που αποτελείται από μια ακολουθία χαρακτήρων:
γράμματα Α; γράμματα Β; γράμματα Β; ένα ψηφίο? ένα από τα γράμματα a, b, c ή d. κατω παυλα; γράμματα α; γράμματα β? γράμματα v.
Επιπλέον, αυτή η ακολουθία μπορεί να προηγείται από ένα αυθαίρετο σύνολο χαρακτήρων.

Διαδικασία Επιλέξτε ΣυμφωνίαContainingInNameText(mText)
//Στο αίτημα θα χρησιμοποιήσουμε ένα πρότυπο όπως "%" + mText + "%" Request = New Request; Query.SetParameter("Όνομα", "%" + Κείμενο + "%"); Request.Text = "ΕΠΙΛΟΓΗ | Συμφωνίες. Σύνδεσμος, | Συμφωνίες. Ιδιοκτήτης | ΑΠΟ | Κατάλογος. Συμβάσεις αντισυμβαλλομένων ΩΣ Συμφωνίες | | ΠΟΥ | Συμφωνίες. Όνομα ΠΑΡΟΜΟΙΑ & Όνομα"; Αποτέλεσμα = Query.Run(); Selection = Result.Select(); Report("Συμφωνίες που περιέχουν στο όνομα: " + mText + " έχουν τους ακόλουθους αντισυμβαλλομένους"); Ενώ Selection.Next() Cycle Report("Αντισυμβαλλόμενος: " + Selection.Owner + "; Συμφωνητικό: " + Selection. Link EndIf; EndProcedure

43
NULL – λείπουν τιμές. Δεν πρέπει να συγχέεται με τη μηδενική αξία! Το NULL δεν είναι αριθμός, δεν ισούται με κενό, κενή αναφορά ή Ακαθόριστο. Το NULL είναι μια τιμή σχηματισμού τύπου, δηλ. υπάρχει ένας τύπος NULL και μια ενιαία τιμή αυτού του τύπου. ΜΗΔΕΝΙΚΟ... 26
Για τη δημιουργία και την εκτέλεση ερωτημάτων σε πίνακες βάσεων δεδομένων στην πλατφόρμα 1C, χρησιμοποιείται ένα ειδικό αντικείμενο της γλώσσας προγραμματισμού Query. Αυτό το αντικείμενο δημιουργείται καλώντας την κατασκευή New Request. Βολικό αίτημα... 18
Το άρθρο παρέχει χρήσιμες τεχνικές κατά την εργασία με ερωτήματα 1C v.8.2, καθώς και πληροφορίες που δεν είναι τόσο γνωστές για τη γλώσσα ερωτημάτων. Δεν προσπαθώ να δώσω μια πλήρη περιγραφή της γλώσσας ερωτήματος, αλλά θέλω να σταθώ μόνο σε... 12
Ήμουν αντιμέτωπος με το καθήκον να επιλέξω όλα τα παραστατικά πληρωμής και να τα ομαδοποιήσω ανά τύπο παραστατικού! Έχοντας κοιτάξει όλες τις στεγαστικές και κοινοτικές υπηρεσίες και το Διαδίκτυο, το συνειδητοποίησα απλός τρόπος get Ο τύπος εγγράφου δεν περιλαμβάνεται στο αίτημα: (Έπρεπε να...