1s 8 je podobno v zahtevi. Podobno kot pri poizvedbenih pogojih. Uporaba operatorja "like".

Oglejmo si namen in uporabo pogojnega operatorja LIKE (angl. LIKE) v poizvedovalnem jeziku 1C v primerih.

Hiter prehod

Namen

Preverite, ali se vrednost niza v zahtevi ujema z navedenim vzorcem – vrne logično vrednost (TRUE ali FALSE).

  • Preverjanje je neodvisno od velikih in malih črk.
  • Poizvedba uporablja indekse tabel, ki niso povezani z indeksi iskanja po celotnem besedilu.
  • Za dokončanje velikih tabel lahko traja veliko časa.
  • Nize neomejene dolžine je treba pretvoriti s funkcijo SUBSTRING

Mesta uporabe

  • V pogojih operaterja WHERE
  • V projektnih pogojih IZBIRA KDAJ<>POTEM "" DRUGE "" KONEC
  • V izbirnih poljih (na primer: Ime LIKE &ParameterSimilar to StringSuitable)

Opis sintakse operatorja LIKE

Parameter operaterja mora biti niz: lahko je določen kot konstanta ali posredovan kot parameter zahteve.

Spodaj navedeni literali (maske) se lahko uporabljajo skupaj ali ločeno.

Natančna specifikacija niza

IZBERITE prvih 10
Ključi. Ime
OD
Imenik.Keys AS Keys
KJE
Keys.Name PODOBNO "1" // Enakovredno Keys.Name ="1"

rezultat:

% je dobesedno, kar pomeni poljubno število poljubnih znakov

IZBERITE prvih 10
Ključi. Ime
OD
Imenik.Keys AS Keys
KJE
Keys.Name LIKE "%"

Rezultat: poljubnih 10 predmetov

_ (podčrtaj): literal, ki se ujema s katerim koli znakom

Primer #1:

IZBERITE prvih 10
Ključi. Ime
OD
Imenik.Keys AS Keys
KJE
Keys.Name LIKE "_"

Primer #2: začenši s poljubnim znakom, ki mu sledi »1« in nato kateri koli znak

IZBERITE prvih 10
Ključi. Ime
OD
Imenik.Keys AS Keys
KJE
Ključi. Ime PODOBNO "_1%"

rezultat:

(en ali več znakov v oglatih oklepajih)

  • Vsak literal, ki se ujema s katerim koli znakom, se uporablja kot ALI.
    Sprejemljivo je določiti obseg, na primer a-z,0-5, kar pomeni poljuben znak iz podanega obsega

Primer

IZBERITE prvih 10
Ključi. Ime
OD
Imenik.Keys AS Keys
KJE
Ključi.Ime PODOBNO "[l]%"

Rezultat: 10, ki se začnejo z "l" ali "z"

primer: začenši s 5,6,7

IZBERITE prvih 10
Ključi. Ime
OD
Imenik.Keys AS Keys
KJE
Keys.Name LIKE "%"

rezultat:

[^] (v oglatih oklepajih je ubežni znak ^, ki mu sledi en ali več znakov)

Enakovredno kateremu koli znaku (_), razen navedenim ()

Primer

IZBERITE prvih 10
Ključi. Ime
OD
Imenik.Keys AS Keys
KJE
Ključi.Ime PODOBNO kot "8.[^012]%"//ne vključuje 8.0,8.1,8.2

Rezultat: vsi se začnejo z "8." razen navedenih

POSEBNI ZNAK - ukaz za podajanje zgoraj registriranih znakov v zahtevku

Kot servisni simbol je sprejemljivo uporabiti vsaj: #,~,/,\

primer:

IZBERITE prvih 10
Ključi. Ime
OD
Imenik.Keys AS Keys
KJE
Keys.Name KOT "#_" POSEBNI ZNAK "#"

rezultat:

Uporabnost v platformah

Nepravilni parametri LIKE<>

  • Parameter ni posredovan vrsto niza: na primer številka 1 namesto niza "1"
  • Polje vrste, ki ni niz, se primerja z veljavno masko (na primer s povezavo) ali pa se pri povezovanju vrednost ne preveri za IsNUL

Bodite pozorni na besedilo napake, kjer je prikazano vprašanje:

Ključi. Ime PODOBNO<>&L

Včasih se pojavi situacija, ko morate v 1C 8.3 ali 8.2 izbrati, na primer, iz imenika vseh elementov, ki imajo v imenu besedo "glazura". Ali pa iz imenika izberite vse izvajalce, katerih priimek vsebuje besedo “Ivan”. Na splošno preverite nekaj vrednosti niza.

V ta namen obstaja operater v poizvedbah 1C 8.3 in 8.2 - "Podobno". Uporablja se v naslednjih pogojih:

Pridobite 267 video lekcij o 1C brezplačno:

Kako uporabljati predloge v poizvedbah 1C?

Če želite ustvariti izbirni pogoj, morate kot parameter posredovati določeno predlogo. Za ustvarjanje predloge obstajajo tako imenovani servisni simboli.

Na primer, znak "%" dovoljuje poljubno zaporedje poljubnih znakov:

Obstajajo še drugi posebni znaki:

  • % (odstotek) - dovoljuje poljubno zaporedje poljubnih znakov;
  • _ (podčrtaj) - poljuben posamezen znak;
  • […] – en poljuben znak izmed tistih, navedenih v oklepaju. Poleg navajanja znakov lahko uporabite obsege. Primer: a-o;
  • [^...] – enako kot prejšnje, vendar obratno. Znak "^" pomeni zanikanje.

Operater Všeč mi je omogoča primerjavo podatkov tipa niz v poizvedbi, ki se nahaja levo od operatorja, s podatki tipa niza, ki se nahajajo desno od operatorja. Rezultat primerjave je ovrednoten na True ali False, zato je primerjavo mogoče uporabiti kot pogoj.

Za operaterja Všeč mi je Obstajajo posebni storitveni znaki, ki jih ne zaznamo kot niz:

  • »%« odstotni simbol: označuje prisotnost poljubnega števila poljubnih znakov v nizu
  • "[...]" en ali več znakov v oglatih oklepajih: označuje prisotnost katerega koli (enega) od navedenih znakov. Določite lahko tudi vrsto znakov (na primer)
  • Podčrtaj »_«: označuje prisotnost poljubnega znaka
  • Negacijski znak "[^...]": označuje prisotnost katerega koli posameznega znaka, razen tistih, navedenih v oglatih oklepajih
Če morate za primerjavo določiti enega od zgornjih posebnih znakov, morate uporabiti ključno besedo "SPECIAL SYMBOL"

Značilnosti uporabe z različnimi DBMS

IBM DB2"Samo parameter je mogoče postaviti desno od operatorja SIMILAR. Edina nadomestna znaka sta "_" (podčrtaj pomeni poljuben znak) in "%" (odstotek pomeni zaporedje poljubnih znakov).
V primeru uporabe DBMS " PostgreSQL" ali " Oracle Database»posebni znaki »oglati oklepaji [...]« so sprejeti le, če so določeni v besedilu v zahtevi, in se NE posredujejo kot parameter zahtevi.

Tako bodo v datotečni bazi posebni znaki vedno zaznani na enak način in različno, odvisno od DBMS, ki se uporablja v različici odjemalec-strežnik.

Primer: izberite izdelke, ki v imenu vsebujejo simbol »%«.

IZBERI | Ref.povezava |OD | Imenik Nomenklatura KAKO Ref | Ref.Name KOT "%\%" POSEBNI ZNAK "\"

Primer: izberite izdelke, katerih imena se začnejo z besedo "Tank"

IZBERI | Ref.povezava |OD | Imenik Nomenklatura KAKO Ref | Ref. ime, PODOBNO "Bak%"

Primer: izberite izdelke, katerih imena se končajo s številko

IZBERI | Ref.povezava |OD | Imenik Nomenklatura KAKO Ref | Ref. ime PODOBNO "%"

Operator SIMILAR v poizvedbi preveri vrednosti nizov iz tabel glede podobnosti z vzorcem.
Uporablja se na naslednji način: niz, ki ga je treba preveriti, se postavi na levo od tega operatorja, vzorec pa na desno.

Po preverjanju vrne True ali False, se aktivno uporablja v pogojih.
Za ustvarjanje predloge se uporabljajo naslednji servisni znaki:

  • % (odstotek) - zaporedje, ki vsebuje poljubno število poljubnih znakov
  • _ (podčrtaj) - en poljuben znak
  • […] (eden ali več znakov v oglatih oklepajih) – vsak posamezen znak, naveden v oglatih oklepajih
    Tudi razen različni liki uporabite lahko obsege, na primer a-z(A-z), kar pomeni, da je v obseg vključen poljuben znak, vključno s konci obsega.
  • [^...] (v oglatih oklepajih znak za zanikanje, ki mu sledi en ali več znakov) – kateri koli posamezen znak, razen tistih, navedenih za znakom za zanikanje

Preostali simboli se uporabljajo za predvideni namen.
Če je treba enega od zgornjih servisnih znakov prenesti kot simbol, mora biti pred njim<Спецсимвол>. sebe<Спецсимвол>(poljubni ustrezen simbol) je definiran v istem stavku po ključna beseda POSEBNI SIMBOL.
Na primer, vzorec “%ABV[abvg]\_abv%” POSEBNI ZNAK “\” pomeni podniz, sestavljen iz zaporedja znakov:
črke A; črke B; črke B; ena številka; ena od črk a, b, c ali d; podčrtaj; črke a; črke b; črke v.
Še več, pred tem zaporedjem je lahko poljuben niz znakov.

Postopek Izberite AgreementContainingInNameText(mText)
//V zahtevi bomo uporabili predlogo, kot je "%" + mText + "%" Zahteva = Nova zahteva; Query.SetParameter("Ime", "%" + Besedilo + "%"); Request.Text = "IZBERI | Sporazumi. Povezava, | Sporazumi. Lastnik | FROM | Imenik. Pogodbe nasprotnih strank AS Sporazumi | | KJE | Sporazumi. Ime PODOBNO & Ime"; Rezultat = Query.Run(); Izbira = Rezultat.Izberi(); Poročilo("Pogodbe, ki v imenu vsebujejo: " + mText + ", imajo naslednje nasprotne stranke"); Medtem ko Selection.Next() Cycle Report("Counterparty: " + Selection.Owner + "; Agreement: " + Selection. Link EndIf; EndProcedure

43
NULL – manjkajoče vrednosti. Ne sme se zamenjevati z vrednostjo nič! NULL ni število, ni enako presledku, praznemu sklicu ali Nedefinirano. NULL je tipotvorna vrednost, tj. obstaja tip NULL in ena sama vrednost tega tipa. NIČ... 26
Za ustvarjanje in izvajanje poizvedb v tabele baze podatkov v platformi 1C se uporablja poseben predmet programskega jezika Query. Ta objekt je ustvarjen s klicem konstrukcije New Request. Priročna zahteva... 18
Članek ponuja uporabne tehnike pri delu s poizvedbami 1C v.8.2, pa tudi informacije, ki o jeziku poizvedb niso tako dobro znane. Ne poskušam podati popolnega opisa poizvedovalnega jezika, ampak se želim osredotočiti le na ... 12
Imel sem nalogo izbrati vse plačilne dokumente in jih združiti po vrstah dokumentov! Ko sem pregledal vse stanovanjske in komunalne storitve ter internet, sem to ugotovil preprost način get Vrsta dokumenta ni v zahtevi:(moral sem ...