Sarnased päringutes 1s 8. Sarnased päringu tingimustes. Näide: valige tooted, mille nimed lõppevad numbriga

Operaator LIKE võimaldab võrrelda stringi tüüpi andmeid päringus, mis asub operaatorist vasakul, stringi tüüpi andmetega, mis asuvad operaatorist paremal. Võrdluse tulemus on tõene või väär, seega saab võrdlust tingimusena rakendada.

Operaatori jaoks LIKE On teenuse erimärke, mida ei tajuta stringina:

  • "%" protsendi sümbol: näitab suvaliste märkide olemasolu stringis
  • "[...]" üks või mitu märki nurksulgudes: näitab mis tahes (üksiku) loetletud märgi olemasolu. Samuti saab määrata märkide vahemiku (näiteks)
  • Alakriips "_": näitab mis tahes suvalise märgi olemasolu
  • "[^...]" eitusmärk: tähistab mis tahes üksiku märgi olemasolu, välja arvatud nurksulgudes määratletud märgid
Kui peate võrdlemiseks määrama ühe ülaltoodud erimärkidest, peate kasutama märksõna "ERISÜMBOL"

Erinevate DBMS-idega kasutamise omadused

IBM DB2"SARNANE operaatorist paremale saab paigutada ainult parameetri. Ainsad metamärgid on "_" (alakriips, mis tähendab mis tahes märki) ja "%" (protsent, mis tähendab mis tahes märkide jada).
DBMS-i kasutamise korral " PostgreSQL" või " Oracle'i andmebaas"Erimärgid "nurksulud [...]" aktsepteeritakse ainult siis, kui need on taotluse tekstis täpsustatud ja neid EI edastata päringu parameetrina.

Seega tajutakse failiandmebaasis erimärke alati ühtemoodi ja erinevalt, sõltuvalt klient-serveri versioonis kasutatavast DBMS-ist.

Näide: valige tooted, mille nimes on sümbol "%".

VALI | Ref.Link |ALT | Kataloog Nomenklatuur KUIDAS Ref |KUS | Ref.Name LIKE "%\%" ERIMÄRK "\"

Näide: valige tooted, mille nimed algavad sõnaga "Paak"

VALI | Ref.Link |ALT | Kataloog Nomenklatuur KUIDAS Ref |KUS | Ref. Name SARNANE "Bak%ga"

Näide: valige tooted, mille nimed lõppevad numbriga

VALI | Ref.Link |ALT | Kataloog Nomenklatuur KUIDAS Ref |KUS | Ref. Name SARNANE "%ga"

Vaatame tingimusoperaatori eesmärki ja kasutamist LIKE (ing. LIKE) 1C päringukeeles näidetes.

Kiire läbipääs

Eesmärk

Kontrollige, kas päringu stringi väärtus vastab määratud mustrile – tagastab Boole'i ​​väärtuse (TRUE või FALSE).

  • Tšekk on juhtumist sõltumatu.
  • Päring kasutab tabeliindekseid, mis ei ole seotud täistekstiotsingu indeksidega.
  • Suurte laudade valmimine võib võtta kaua aega.
  • Piiramatu pikkusega stringid tuleks teisendada funktsiooni SUBSTRING abil

Kasutuskohad

  • Operaatori WHERE tingimustes
  • Projekteerimistingimustes VALIK MILLAL<>SIIS "" MUU "" LÕPP
  • Valikuväljadel (näiteks: nimi LIKE &Parameeter Sarnane StringSuitablega)

Operaatori LIKE süntaksi kirjeldus

Operaatori parameeter peab olema string: selle saab määrata konstantina või edastada päringu parameetrina.

Allpool loetletud literaale (maske) saab kasutada koos või eraldi.

Täpne stringi spetsifikatsioon

VALI esimesed 10
Võtmed. Nimi
FROM
Directory.Keys AS Võtmed
KUS
Keys.Name SARNANE "1"-ga // Samaväärne võtmega.Nimi ="1"

Tulemus:

% on sõnasõnaline, mis tähendab mis tahes märkide suvalist arvu

VALI esimesed 10
Võtmed. Nimi
FROM
Directory.Keys AS Võtmed
KUS
Keys.Name LIKE "%"

Tulemus: mis tahes 10 üksust

_ (alakriips): mis tahes tähemärgi sõnasõnaline vaste

Näide nr 1:

VALI esimesed 10
Võtmed. Nimi
FROM
Directory.Keys AS Võtmed
KUS
Keys. Name LIKE "_"

Näide nr 2: alustades mis tahes tähemärgiga, millele järgneb "1" ja seejärel mis tahes tähed

VALI esimesed 10
Võtmed. Nimi
FROM
Directory.Keys AS Võtmed
KUS
Keys. Name SARNANE "_1%"

Tulemus:

(üks või mitu märki nurksulgudes)

  • Iga literaali, mis vastab ühele märgile, kasutatakse VÕI-na.
    Vastuvõetav on määrata vahemik, näiteks a-z,0-5, mis tähendab suvalist märki määratud vahemikust

Näide

VALI esimesed 10
Võtmed. Nimi
FROM
Directory.Keys AS Võtmed
KUS
Keys. Name SARNANE "[l]%"

Tulemus: 10, mis algab tähega "l" või "z"

Näide: alustades 5,6,7

VALI esimesed 10
Võtmed. Nimi
FROM
Directory.Keys AS Võtmed
KUS
Keys.Name LIKE "%"

Tulemus:

[^] (nurksulgudes on paomärk ^, millele järgneb üks või mitu tähemärki)

Samaväärne mis tahes märgiga (_), välja arvatud need, mis on määratud ()

Näide

VALI esimesed 10
Võtmed. Nimi
FROM
Directory.Keys AS Võtmed
KUS
Võtmed.Nimi SARNANE "8-ga.[^012]%"//ei sisalda 8.0,8.1,8.2

Tulemus: kõik algavad tähega "8." välja arvatud märgitud

SPECIAL CHARACTER - käsk ülalpool päringus registreeritud märkide täpsustamiseks

Teenuse sümbolina on vastuvõetav kasutada vähemalt: #,~,/,\

Näide:

VALI esimesed 10
Võtmed. Nimi
FROM
Directory.Keys AS Võtmed
KUS
Keys. Name LIKE "#_" ERIMÄRK "#"

Tulemus:

Kasutatavus platvormidel

Valed parameetrid LIKE<>

  • Edastatakse mittestringi tüüpi parameeter: näiteks stringi "1" asemel number 1
  • Mittestringi tüüpi välja võrreldakse kehtiva maskiga (näiteks lingiga) või ühenduse loomisel ei kontrollita väärtust IsNUL

Pöörake tähelepanu veatekstile, kus küsimus kuvatakse:

Võtmed.Nimi SARNANE<>&L

Mõnikord tekib olukord, kui 1C 8.3 või 8.2 puhul peate tegema valiku näiteks kõigi elementide kataloogist, mille nimes on sõna "glasuur". Või valige kataloogist kõik töövõtjad, kelle perekonnanimed sisaldavad sõna "Ivan". Üldiselt kontrollige mõnda stringi väärtust.

Selleks on 1C päringutes 8.3 ja 8.2 operaator - “Sarnane”. Seda kasutatakse vastavalt järgmistel tingimustel:

Hankige 267 videotundi 1C-s tasuta:

Kuidas kasutada malle 1C päringutes?

Valikutingimuse genereerimiseks peate parameetrina edastama teatud malli. Malli loomiseks on nn teenindussümbolid.

Näiteks märk "%" võimaldab mis tahes suvaliste märkide jada:

On ka teisi eritegelasi:

  • % (protsent) – lubab mis tahes suvaliste märkide jada;
  • _ (alakriips) - mis tahes üksik märk;
  • […] – üks suvaline märk sulgudes loetletud märkidest. Lisaks märkide loetlemisele saate kasutada vahemikke. Näide: a-o;
  • [^...] – sama, mis eelmine, aga tagurpidi. Märk "^" tähendab eitust.

SARNANE operaator päringus kontrollib tabelite stringiväärtusi mustriga sarnasuse osas.
Seda kasutatakse järgmiselt: kontrollitav string asetatakse sellest operaatorist vasakule ja muster paremale.

Pärast kontrollimist tagastab see tõese või vale; vastavalt sellele kasutatakse seda tingimustes aktiivselt.
Malli loomiseks kasutatakse järgmisi teenusemärke:

  • % (protsent) - jada, mis sisaldab suvalist arvu suvalisi märke
  • _ (alakriips) - üks suvaline märk
  • […] (üks või mitu tähemärki nurksulgudes) – iga nurksulgudes olev märk
    Lisaks erinevatele sümbolitele saate kasutada ka vahemikke, näiteks a-z(A-z), mis tähendab vahemikku kaasatud suvalise sümboli olemasolu, sealhulgas vahemiku lõppu.
  • [^...] (nurksulgudes eitusmärk, millele järgneb üks või mitu märki) – mis tahes üksik märk, välja arvatud need, mis on loetletud pärast eitusmärki

Ülejäänud sümboleid kasutatakse ettenähtud otstarbel.
Kui on vaja edastada üks ülaltoodud teenusemärkidest sümbolina, peab sellele eelnema<Спецсимвол>. mina ise<Спецсимвол>(mis tahes sobiv märk) on määratletud samas lauses pärast märksõna ERIMÄRK.
Näiteks muster "%ABV[abvg]\_abv%" ERIMÄRK "\" tähendab alamstringi, mis koosneb märgijadast:
tähed A; tähed B; tähed B; üks number; üks tähtedest a, b, c või d; alakriips; tähed a; tähed b; tähed v.
Veelgi enam, sellele jadale võib eelneda suvaline märkide komplekt.

Protseduuri valimine Leping, mis sisaldab nimeteksti(mText)
//Taotluses kasutame malli nagu "%" + mText + "%" Request = Uus taotlus; Query.SetParameter("Nimi", "%" + Tekst + "%"); Request.Text = "SELECT | Lepingud. Link, | Lepingud. Omanik | FROM | Kataloog. Vastaspoolte lepingud AS Lepingud | | KUS | Lepingud. Nimi SARNANE & nimi"; Tulemus = Query.Run(); Valik = Tulemus.Vali(); Report("Lepingutel, mis sisaldavad nime: " + mText + ", on järgmised vastaspooled"); While Selection.Next() Cycle Report ("Vastaspool: " + Valik.Omanik + "; Leping: " + Valik. Link EndIf; EndProcedure