შეკითხვის პირობების მსგავსი. მსგავსია მოთხოვნის პირობებში 1c 8 მსგავსი მოთხოვნაში

ოპერატორი LIKEსაშუალებას გაძლევთ შეადაროთ სტრიქონის ტიპის მონაცემები მოთხოვნაში, რომელიც მდებარეობს ოპერატორის მარცხნივ, სტრიქონის ტიპის მონაცემებთან, რომელიც მდებარეობს ოპერატორის მარჯვნივ. შედარების შედეგი ფასდება True ან False, ამიტომ შედარება შეიძლება გამოყენებულ იქნას როგორც პირობა.

ოპერატორისთვის LIKEარსებობს სპეციალური სერვისის სიმბოლოები, რომლებიც არ აღიქმება როგორც სტრიქონი:

  • "%" პროცენტის სიმბოლო: მიუთითებს სტრიქონში ნებისმიერი რაოდენობის თვითნებური სიმბოლოების არსებობაზე
  • "[...]" ერთი ან მეტი სიმბოლო კვადრატულ ფრჩხილებში: მიუთითებს ჩამოთვლილი სიმბოლოებიდან რომელიმე (ერთის) არსებობაზე. ასევე, შეიძლება განისაზღვროს სიმბოლოების დიაპაზონი (მაგალითად)
  • "_" ხაზგასმა: მიუთითებს ნებისმიერი თვითნებური სიმბოლოს არსებობაზე
  • "[^...]" უარყოფის სიმბოლო: აღნიშნავს კვადრატულ ფრჩხილებში მითითებული ნებისმიერი სიმბოლოს არსებობას
თუ შედარებისთვის გჭირდებათ ზემოაღნიშნულიდან ერთ-ერთი სპეციალური სიმბოლოს მითითება, თქვენ უნდა გამოიყენოთ საკვანძო სიტყვა "SPECIAL SYMBOL"

გამოყენების თავისებურებები სხვადასხვა DBMS-ებთან

IBM DB2"მხოლოდ პარამეტრი შეიძლება განთავსდეს SIMILAR ოპერატორის მარჯვნივ. მხოლოდ ველური სიმბოლოებია "_" (ხაზგასმული ნიშნავს ნებისმიერ სიმბოლოს) და "%" (პროცენტი ნიშნავს ნებისმიერი სიმბოლოების თანმიმდევრობას).
DBMS-ის გამოყენების შემთხვევაში " PostgreSQL"ან" Oracle მონაცემთა ბაზა"სპეციალური სიმბოლოები "კვადრატული ფრჩხილები [...]" მიიღება მხოლოდ იმ შემთხვევაში, თუ ისინი მითითებულია მოთხოვნის ტექსტში და არ გადაეცემა მოთხოვნის პარამეტრად.

ამრიგად, ფაილების მონაცემთა ბაზაში სპეციალური სიმბოლოები ყოველთვის ერთნაირად იქნება აღქმული და განსხვავებულად, კლიენტ-სერვერის ვერსიაში გამოყენებული DBMS-ის მიხედვით.

მაგალითი: აირჩიეთ პროდუქტები, რომლებიც შეიცავს სიმბოლოს "%" სახელში

აირჩიეთ | Ref.link |FROM | ცნობარი ნომენკლატურა HOW Ref | WHERE | Ref.Name LIKE "%\%" SPECIAL CHARACTER "\"

მაგალითი: აირჩიეთ პროდუქტები, რომელთა სახელები იწყება სიტყვით "ტანკი"

აირჩიეთ | Ref.link |FROM | ცნობარი ნომენკლატურა HOW Ref | WHERE | Ref.Name SIMILAR to "Bak%"

მაგალითი: აირჩიეთ პროდუქტები, რომელთა სახელები მთავრდება რიცხვით

აირჩიეთ | Ref.link |FROM | ცნობარი ნომენკლატურა HOW Ref | WHERE | Ref.Name SIMILAR to "%"

მოდით შევხედოთ პირობითი ოპერატორის დანიშნულებას და გამოყენებას მოწონება (ინგლ. LIKE) 1C შეკითხვის ენაზე მაგალითებში.

სწრაფი გავლა

მიზანი

შეამოწმეთ, შეესაბამება თუ არა მოთხოვნაში სტრიქონის მნიშვნელობა მითითებულ შაბლონს - აბრუნებს ლოგიკურ მნიშვნელობას (TRUE ან FALSE).

  • ჩეკი არის საქმისგან დამოუკიდებელი.
  • მოთხოვნა იყენებს ცხრილის ინდექსებს, რომლებიც არ არის დაკავშირებული სრული ტექსტის საძიებო ინდექსებთან.
  • დიდი მაგიდების შევსებას შეიძლება დიდი დრო დასჭირდეს.
  • შეუზღუდავი სიგრძის სტრიქონები უნდა გარდაიქმნას SUBSTRING ფუნქციის გამოყენებით

გამოყენების ადგილები

  • ოპერატორის პირობებით WHERE
  • დიზაინის პირობებში CHOICE WHEN<>შემდეგ "" სხვა "" დასასრული
  • შერჩევის ველებში (მაგალითად: Name LIKE &ParameterSimilar to StringSuitable)

LIKE ოპერატორის სინტაქსის აღწერა

ოპერატორის პარამეტრი უნდა იყოს სტრიქონი: ის შეიძლება განისაზღვროს როგორც მუდმივი, ან გადავიდეს მოთხოვნის პარამეტრად.

ქვემოთ ჩამოთვლილი ლიტერალები (ნიღბები) შეიძლება გამოყენებულ იქნას ერთად ან ცალ-ცალკე.

სტრიქონის ზუსტი სპეციფიკაცია

აირჩიეთ პირველი 10
გასაღებები.სახელი
FROM
Directory.Keys AS Keys
სად
Keys.Name SIMILAR to "1" // Keys.Name = "1"-ის ექვივალენტი

შედეგი:

% არის პირდაპირი მნიშვნელობით ნებისმიერი სიმბოლოების თვითნებური რიცხვი

აირჩიეთ პირველი 10
გასაღებები.სახელი
FROM
Directory.Keys AS Keys
სად
Keys.Name LIKE "%"

შედეგი: ნებისმიერი 10 ელემენტი

_ (ხაზგასმით): სიტყვასიტყვით შეესაბამება რომელიმე სიმბოლოს

მაგალითი #1:

აირჩიეთ პირველი 10
გასაღებები.სახელი
FROM
Directory.Keys AS Keys
სად
Keys.Name LIKE "_"

მაგალითი #2:დაწყებული ნებისმიერი სიმბოლოთი, შემდეგ "1" და შემდეგ ნებისმიერი სიმბოლო

აირჩიეთ პირველი 10
გასაღებები.სახელი
FROM
Directory.Keys AS Keys
სად
Keys.Name SIMILAR to "_1%"

შედეგი:

(ერთი ან მეტი სიმბოლო კვადრატულ ფრჩხილებში)

  • თითოეული ლიტერალი, რომელიც ემთხვევა რომელიმე სიმბოლოს, გამოიყენება როგორც OR.
    მისაღებია დიაპაზონის მითითება, მაგალითად a-z,0-5, რაც ნიშნავს თვითნებურ სიმბოლოს მითითებული დიაპაზონიდან

მაგალითი

აირჩიეთ პირველი 10
გასაღებები.სახელი
FROM
Directory.Keys AS Keys
სად
Keys.Name SIMILAR to "[l]%"

შედეგი: 10 დაწყებული "l"-ით ან "z"-ით

მაგალითი:დაწყებული 5,6,7

აირჩიეთ პირველი 10
გასაღებები.სახელი
FROM
Directory.Keys AS Keys
სად
Keys.Name LIKE "%"

შედეგი:

[^] (კვადრატულ ფრჩხილებში არის გაქცევის ნიშანი ^ რასაც მოჰყვება ერთი ან მეტი სიმბოლო)

ნებისმიერი სიმბოლოს ექვივალენტი (_) გარდა მითითებულისა ()

მაგალითი

აირჩიეთ პირველი 10
გასაღებები.სახელი
FROM
Directory.Keys AS Keys
სად
Keys.Name SIMILAR to "8.[^012]%"//არ მოიცავს 8.0,8.1,8.2

შედეგი: ყველაფერი იწყება "8"-ით. მითითებულის გამოკლებით

SPECIAL CHARACTER - ბრძანება მოთხოვნაში ზემოთ რეგისტრირებული სიმბოლოების მითითებისთვის

როგორც სერვისის სიმბოლო, მისაღებია გამოიყენოთ მინიმუმ: #,~,/,\

მაგალითი:

აირჩიეთ პირველი 10
გასაღებები.სახელი
FROM
Directory.Keys AS Keys
სად
Keys.Name LIKE "#_" SPECIAL CHARACTER "#"

შედეგი:

გამოყენებადობა პლატფორმებზე

არასწორი პარამეტრები LIKE<>

  • გადაცემულია არასტრიქონის ტიპის პარამეტრი: მაგალითად, ნომერი 1 სტრიქონის ნაცვლად "1"
  • არა-სტრიქონის ტიპის ველი შედარებულია მოქმედ ნიღბთან (მაგალითად, ბმული) ან დაკავშირებისას მნიშვნელობა არ არის შემოწმებული IsNUL-ისთვის

ყურადღება მიაქციეთ შეცდომის ტექსტს, სადაც შეკითხვაა ნაჩვენები:

Keys.Name SIMILAR<>&ლ

LIKE- ოპერატორი სტრიქონის ნიმუშის მსგავსების შესამოწმებლად. LIKE-ის ანალოგი SQL-ში.
ოპერატორი LIKEსაშუალებას გაძლევთ შეადაროთ მის მარცხნივ მითითებული გამოხატვის მნიშვნელობა მარჯვნივ მითითებულ შაბლონის სტრიქონთან. გამოხატვის მნიშვნელობა უნდა იყოს string ტიპის. თუ გამოხატვის მნიშვნელობა ემთხვევა შაბლონს, ოპერატორის შედეგი იქნება TRUE, წინააღმდეგ შემთხვევაში იქნება FALSE.
შაბლონის სტრიქონში შემდეგი სიმბოლოები არის სერვისის სიმბოლოები და აქვთ სტრიქონის სიმბოლოსგან განსხვავებული მნიშვნელობა:
. % (პროცენტი): თანმიმდევრობა, რომელიც შეიცავს ნებისმიერი რაოდენობის თვითნებურ სიმბოლოებს
. _ (ხაზგასმით): ერთი თვითნებური სიმბოლო
. [...] (ერთი ან მეტი სიმბოლო კვადრატულ ფრჩხილებში): ნებისმიერი სიმბოლო, რომელიც ჩამოთვლილია კვადრატულ ფრჩხილებში
ჩამოთვლა შეიძლება შეიცავდეს დიაპაზონებს, მაგალითად a-z, რაც ნიშნავს თვითნებურ სიმბოლოს, რომელიც შედის დიაპაზონში, დიაპაზონის ბოლოების ჩათვლით.
. [^...] (კვადრატულ ფრჩხილებში უარყოფის ნიშანი, რომელსაც მოჰყვება ერთი ან მეტი სიმბოლო): ნებისმიერი ცალკეული სიმბოლო, გარდა იმ სიმბოლოებისა, რომლებიც ჩამოთვლილია უარყოფის ნიშნის შემდეგ
ნებისმიერი სხვა სიმბოლო ნიშნავს თავის თავს და არ ატარებს რაიმე დამატებით დატვირთვას.
თუ ჩამოთვლილთაგან ერთ-ერთი სიმბოლო უნდა დაიწეროს როგორც თავად, მაშინ მას წინ უნდა უძღოდეს<Спецсимвол>. მე თვითონ<Спецсимвол>(ნებისმიერი შესაფერისი სიმბოლო) განისაზღვრება იმავე განცხადებაში SPECIAL CHARACTER საკვანძო სიტყვის შემდეგ.
Მაგალითად, ნიმუში „%ABV[abvg]\_abv%“ სპეციალური სიმბოლო „\“ ნიშნავს ქვესტრიქონს, რომელიც შედგება სიმბოლოების თანმიმდევრობისგან:
ასო A; ასოები B; ასოები B; ერთი ციფრი; ერთ-ერთი ასო a, b, c ან d; ხაზგასმა; ასო ა; ასო ბ; ასოები ვ.
უფრო მეტიც, ამ თანმიმდევრობას შეიძლება წინ უძღოდეს სიმბოლოების თვითნებური ნაკრები.

გამოყენების მაგალითები:
კოდი 1C v 8.x პროცედურა BankEndTextInput (ელემენტი, ტექსტი, მნიშვნელობა, სტანდარტული დამუშავება)
StandardProcessing = False;
//მოთხოვნის გაკეთება ძიებით ისეთი ნიმუშის გამოყენებით, როგორიცაა "%" +<Текст введенный пользователм в поле ввода> + "%"
მოთხოვნა = ახალი მოთხოვნა;
Query.SetParameter("სახელი", "%" + ტექსტი + "%");
Query.Text = "SELECT
| ბანკები.ლინკი
|საიდან
| დირექტორია.ბანკები HOW ბანკები
|სად
| ბანკები.სახელი SIMILAR &Name";

შედეგი = Query.Run();
Selection = Result.Select();
თუ შედეგი.Empty() მაშინ
//Არაფერი არ არის ნაპოვნი. აქ შეგიძლიათ აჩვენოთ შეტყობინება ან გააკეთოთ რამე :)
წინააღმდეგ შემთხვევაში
//მიიღეთ შედეგები
tzResults = Result.Unload();
//მოამზადეთ მნიშვნელობების სია, რომელიც შეიცავს ნაპოვნი ელემენტებს.
Value = New ValueList();
Value.LoadValues(tzResults.UnloadColumn("ბმული"));
დაასრულე თუ;
პროცედურის დასასრული

აუცილებელია, რომ „ნაგულისხმევი ხელშეკრულებები“ შეიცავდეს მხოლოდ ძირითადი ხელშეკრულების სახელებს და ა.შ.:
კოდი 1C v 8.x არჩევანი
როდესაც სახელი მსგავსია „Agreement No.%“-ის, მაშინ „Agreement with number“ // ნებისმიერი ხაზი, რომელიც იწყება „Agreement No.“-ით შესაფერისია.
როდესაც სახელი არის "მთავარი შეთანხმების%[^А-яЁе"+Symbol(33)+"-"+Symbol(126)+"№"""+Symbols.PS+Symbols.Tab+Symbols.PF+Symbols. .NPP+ Symbols.VTab+"]%" შემდეგ "Default Contracts" // ნებისმიერი ხაზი, რომელიც იწყება "მთავარი კონტრაქტით" შესაფერისია
წინააღმდეგ შემთხვევაში "სხვა"
დასრულდეს როგორც სახის კონტრაქტი

ინფორმაცია აღებულია საიტიდან

SIMILAR ოპერატორი შეკითხვისას ამოწმებს სტრიქონების მნიშვნელობებს ცხრილებიდან შაბლონთან მსგავსებისთვის.
იგი გამოიყენება შემდეგნაირად: შესამოწმებელი სტრიქონი მოთავსებულია ამ ოპერატორის მარცხნივ, ხოლო ნიმუში მოთავსებულია მარჯვნივ.

შემოწმების შემდეგ აბრუნებს True ან False, შესაბამისად, აქტიურად გამოიყენება პირობებში.
შემდეგი სერვისის სიმბოლოები გამოიყენება შაბლონის შესაქმნელად:

  • % (პროცენტი) - თანმიმდევრობა, რომელიც შეიცავს ნებისმიერი რაოდენობის თვითნებურ სიმბოლოებს
  • _ (ხაზგასმული) - ერთი თვითნებური სიმბოლო
  • [...] (ერთი ან მეტი სიმბოლო კვადრატულ ფრჩხილებში) - ნებისმიერი სიმბოლო, რომელიც ჩამოთვლილია კვადრატულ ფრჩხილებში
    ასევე, სხვადასხვა სიმბოლოების გარდა, შეგიძლიათ გამოიყენოთ დიაპაზონები, მაგალითად a-z(A-z), რაც ნიშნავს დიაპაზონში შემავალი თვითნებური სიმბოლოს არსებობას, დიაპაზონის ბოლოების ჩათვლით.
  • [^...] (კვადრატულ ფრჩხილებში უარყოფის ნიშანი, რომელსაც მოჰყვება ერთი ან მეტი სიმბოლო) - ნებისმიერი ცალკეული სიმბოლო, გარდა იმ სიმბოლოებისა, რომლებიც ჩამოთვლილია უარყოფის ნიშნის შემდეგ

დარჩენილი სიმბოლოები გამოიყენება მათი დანიშნულებისამებრ.
თუ აუცილებელია ერთ-ერთი ზემოაღნიშნული სერვისის სიმბოლოს სიმბოლოდ გადაცემა, მაშინ მას წინ უნდა უძღოდეს<Спецсимвол>. მე თვითონ<Спецсимвол>(ნებისმიერი შესაფერისი სიმბოლო) განისაზღვრება იმავე განცხადებაში SPECIAL CHARACTER საკვანძო სიტყვის შემდეგ.
მაგალითად, ნიმუში "%ABV[abvg]\_abv%" სპეციალური სიმბოლო "\" ნიშნავს ქვესტრიქონს, რომელიც შედგება სიმბოლოების თანმიმდევრობისგან:
ასო A; ასოები B; ასოები B; ერთი ციფრი; ერთ-ერთი ასო a, b, c ან d; ხაზგასმა; ასო ა; ასო ბ; ასოები ვ.
უფრო მეტიც, ამ თანმიმდევრობას შეიძლება წინ უძღოდეს სიმბოლოების თვითნებური ნაკრები.

პროცედურის არჩევა ხელშეკრულების შემცველი სახელის ტექსტის (მტექსტის)
//მოთხოვნაში გამოვიყენებთ შაბლონს, როგორიცაა "%" + mText + "%" მოთხოვნა = ახალი მოთხოვნა; Query.SetParameter("სახელი", "%" + ტექსტი + "%"); Request.Text = "აირჩიეთ | ხელშეკრულებები. ბმული, | ხელშეკრულებები. მფლობელი | FROM | დირექტორია. კონტრაქტთა კონტრაქტები როგორც ხელშეკრულებები | | WHERE | ხელშეკრულებები. სახელი SIMILAR & სახელი"; შედეგი = Query.Run(); Selection = Result.Select(); Report("შეთანხმებებს, რომლებიც შეიცავს სახელს: " + mText + " აქვთ შემდეგი კონტრაგენტები"); When Selection.Next() Cycle Report ("კონტრაგედი: " + Selection.Owner + "; შეთანხმება: " + Selection. Link EndIf; EndProcedure

თემის გაგრძელება:
თამაშები

პროდუქტის დანიშნულება "ACC-სამთავრობო ბრძანება" სისტემა ("ACC-მუნიციპალური ორდერი") შექმნილია იმისათვის, რომ მოაწყოს შეკვეთის მომზადებისა და გაფორმების მთელი პროცესის კონტროლი და ანალიზი: დან...

ახალი სტატიები
/
პოპულარული