1s 8 je v žiadosti podobná. Podobné ako podmienky dotazu. Pomocou operátora „like“.

Pozrime sa na účel a použitie podmieneného operátora LIKE (angl. LIKE) v dopytovacom jazyku 1C v príkladoch.

Rýchly prechod

Účel

Skontrolujte, či sa hodnota reťazca v požiadavke zhoduje so zadaným vzorom - vráti boolovskú hodnotu (TRUE alebo FALSE).

  • Kontrola je nezávislá od prípadu.
  • Dotaz používa indexy tabuliek, ktoré nesúvisia s indexmi fulltextového vyhľadávania.
  • Dokončenie pri veľkých stoloch môže trvať dlho.
  • Reťazce neobmedzenej dĺžky by sa mali konvertovať pomocou funkcie SUBSTRING

Miesta použitia

  • V podmienkach operátora WHERE
  • V podmienkach návrhu VOĽBA KEDY<>POTOM "" INAK "" KONIEC
  • V poliach výberu (napríklad: Názov LIKE &ParameterPodobný ako StringSuitable)

Popis syntaxe operátora LIKE

Parameter operátora musí byť reťazec: môže byť špecifikovaný ako konštanta alebo odovzdaný ako parameter požiadavky.

Literály (masky) uvedené nižšie je možné použiť spolu alebo samostatne.

Presná špecifikácia reťazca

VYBERTE prvých 10
Keys.Name
OD
Directory.Keys AS kľúče
KDE
Keys.Name PODOBNÉ ako "1" // Ekvivalentné s Keys.Name ="1"

výsledok:

% je doslovné označenie, ktoré znamená ľubovoľný počet ľubovoľných znakov

VYBERTE prvých 10
Keys.Name
OD
Directory.Keys AS kľúče
KDE
Keys.Name LIKE "%"

Výsledok: ľubovoľných 10 položiek

_ (podčiarkovník): doslovná zhoda s ľubovoľným znakom

Príklad č. 1:

VYBERTE prvých 10
Keys.Name
OD
Directory.Keys AS kľúče
KDE
Keys.Name LIKE "_"

Príklad č. 2: počnúc ľubovoľným znakom, po ktorom nasleduje „1“ a potom ľubovoľnými znakmi

VYBERTE prvých 10
Keys.Name
OD
Directory.Keys AS kľúče
KDE
Kľúče. Názov PODOBNÝ ako „_1 %“

výsledok:

(jeden alebo viac znakov v hranatých zátvorkách)

  • Každý literál, ktorý sa zhoduje s ktorýmkoľvek znakom, sa používa ako ALEBO.
    Je prijateľné špecifikovať rozsah, napríklad a-z,0-5, čo znamená ľubovoľný znak zo špecifikovaného rozsahu

Príklad

VYBERTE prvých 10
Keys.Name
OD
Directory.Keys AS kľúče
KDE
Kľúče. Názov PODOBNÝ ako „[l] %“

Výsledok: 10 začínajúce na „l“ alebo „z“

Príklad: počnúc 5,6,7

VYBERTE prvých 10
Keys.Name
OD
Directory.Keys AS kľúče
KDE
Keys.Name LIKE "%"

výsledok:

[^] (v hranatých zátvorkách je znak escape ^, za ktorým nasleduje jeden alebo viac znakov)

Zodpovedá akémukoľvek znaku (_) okrem tých, ktoré sú špecifikované ()

Príklad

VYBERTE prvých 10
Keys.Name
OD
Directory.Keys AS kľúče
KDE
Keys.Name PODOBNÉ ako "8.[^012]%"//nezahŕňajú 8.0,8.1,8.2

Výsledok: všetky začínajú na "8." okrem uvedených

ŠPECIÁLNY CHARACTER - príkaz na zadanie vyššie zaregistrovaných znakov v požiadavke

Ako symbol služby je prijateľné použiť aspoň: #,~,/,\

Príklad:

VYBERTE prvých 10
Keys.Name
OD
Directory.Keys AS kľúče
KDE
Keys.Name AKO "#_" ŠPECIÁLNY CHARAKTER "#"

výsledok:

Použiteľnosť v platformách

Nesprávne parametre LIKE<>

  • Parameter nie je odovzdaný typ reťazca: napríklad číslo 1 namiesto reťazca "1"
  • Pole nereťazcového typu sa porovnáva s platnou maskou (napríklad odkaz) alebo pri pripájaní sa hodnota nekontroluje na IsNUL

Venujte pozornosť chybovému textu, kde sa zobrazuje otázka:

Kľúče.Názov PODOBNÝ<>&L

Niekedy nastane situácia, keď v 1C 8.3 alebo 8.2 musíte urobiť výber, napríklad z adresára všetkých prvkov, ktoré majú v názve slovo „glazúra“. Alebo z adresára vyberte všetkých dodávateľov, ktorých priezviská obsahujú slovo „Ivan“. Vo všeobecnosti skontrolujte nejakú hodnotu reťazca.

Na tento účel existuje operátor v dotazoch 1C 8.3 a 8.2 - „Podobné“. Používa sa v týchto podmienkach:

Získajte 267 video lekcií na 1C zadarmo:

Ako používať šablóny v dopytoch 1C?

Ak chcete vygenerovať podmienku výberu, musíte odovzdať určitú šablónu ako parameter. Na vytvorenie šablóny existujú takzvané symboly služieb.

Napríklad znak „%“ umožňuje ľubovoľnú sekvenciu ľubovoľných znakov:

Existujú aj ďalšie špeciálne znaky:

  • % (percento) – umožňuje ľubovoľnú sekvenciu ľubovoľných znakov;
  • _ (podčiarkovník) - ľubovoľný jeden znak;
  • […] – jeden ľubovoľný znak zo znakov uvedených v zátvorkách. Okrem výpisu znakov môžete použiť rozsahy. Príklad: a-o;
  • [^...] – to isté ako predchádzajúce, ale v opačnom poradí. Znak "^" znamená negáciu.

Operátor PÁČI SA MI TO umožňuje porovnať údaje typu reťazec v dotaze, ktorý sa nachádza naľavo od operátora, s údajmi typu reťazec, ktorý sa nachádza napravo od operátora. Výsledok porovnania sa vyhodnotí ako Pravda alebo Nepravda, takže porovnanie možno použiť ako podmienku.

Pre operátora PÁČI SA MI TO Existujú špeciálne servisné znaky, ktoré nie sú vnímané ako reťazec:

  • Symbol percenta "%": označuje prítomnosť ľubovoľného počtu ľubovoľných znakov v reťazci
  • "[...]" jeden alebo viac znakov v hranatých zátvorkách: označuje prítomnosť ktoréhokoľvek (jediného) z uvedených znakov. Tiež je možné zadať rozsah znakov (napr.
  • "_" podčiarknutie: označuje prítomnosť ľubovoľného znaku
  • Negačný znak „[^...]“: označuje prítomnosť akéhokoľvek samostatného znaku okrem tých, ktoré sú uvedené v hranatých zátvorkách
Ak potrebujete na porovnanie zadať jeden z vyššie uvedených špeciálnych znakov, musíte použiť kľúčové slovo „ŠPECIÁLNY SYMBOL“

Vlastnosti použitia s rôznymi DBMS

IBM DB2"Napravo od operátora PODOBNÝ možno umiestniť iba parameter. Jedinými zástupnými znakmi sú "_" (podčiarkovník znamená ľubovoľný znak) a "%" (percento znamená postupnosť ľubovoľných znakov).
V prípade použitia DBMS " PostgreSQL" alebo " Oracle Database"špeciálne znaky "hranaté zátvorky [...]" sú akceptované iba vtedy, ak sú špecifikované v texte v požiadavke a NIE sú odovzdané ako parameter požiadavky.

V databáze súborov teda budú špeciálne znaky vždy vnímané rovnako a odlišne v závislosti od DBMS použitej vo verzii klient-server.

Príklad: vyberte produkty obsahujúce v názve symbol „%“.

VYBERTE | Ref.Link |OD | Zoznam Nomenklatúra AKO Ref | KDE | Ref.Name AKO "%\%" ŠPECIÁLNY CHARAKTER "\"

Príklad: vyberte produkty, ktorých názvy začínajú slovom „Tank“

VYBERTE | Ref.Link |OD | Zoznam Nomenklatúra AKO Ref | KDE | Ref.Name PODOBNÉ ako "Bak%"

Príklad: vyberte produkty, ktorých názvy končia číslom

VYBERTE | Ref.Link |OD | Zoznam Nomenklatúra AKO Ref | KDE | Ref.Name PODOBNÉ ako "%"

Operátor PODOBNÝ v dotaze kontroluje hodnoty reťazcov z tabuliek na podobnosť so vzorom.
Používa sa nasledovne: reťazec, ktorý sa má skontrolovať, sa umiestni naľavo od tohto operátora a vzor sa umiestni napravo.

Po kontrole vráti hodnotu True alebo False, podľa toho sa aktívne používa v podmienkach.
Na vytvorenie šablóny sa používajú nasledujúce servisné znaky:

  • % (percento) – sekvencia obsahujúca ľubovoľný počet ľubovoľných znakov
  • _ (podčiarkovník) - jeden ľubovoľný znak
  • […] (jeden alebo viac znakov v hranatých zátvorkách) – každý jednotlivý znak uvedený v hranatých zátvorkách
    Tiež okrem rôzne postavy môžete použiť rozsahy, napríklad a-z(A-z), čo znamená, že v rozsahu je zahrnutý ľubovoľný znak vrátane koncov rozsahu.
  • [^...] (v hranatých zátvorkách znak záporu nasledovaný jedným alebo viacerými znakmi) – každý jeden znak okrem tých, ktoré sú uvedené za znakom záporu

Zostávajúce symboly sa používajú na určený účel.
Ak je potrebné preniesť jeden z vyššie uvedených servisných znakov ako symbol, musí mu predchádzať<Спецсимвол>. Ja sám<Спецсимвол>(akýkoľvek vhodný symbol) je definovaný v rovnakom vyhlásení za kľúčové slovoŠPECIÁLNY SYMBOL.
Napríklad vzor „%ABV[abvg]\_abv%“ ŠPECIÁLNY ZNAK „\“ znamená podreťazec pozostávajúci zo sekvencie znakov:
písmená A; písmená B; písmená B; jedna číslica; jedno z písmen a, b, c alebo d; podčiarknuť; písmená a; písmená b; písmená v.
Okrem toho môže tejto sekvencii predchádzať ľubovoľná množina znakov.

Postup Vybrať dohodu ObsahujeInNameText(mText)
//V požiadavke použijeme šablónu ako "%" + mText + "%" Požiadavka = Nová požiadavka; Query.SetParameter("Name", "%" + Text + "%"); Request.Text = "SELECT | Dohody. Odkaz, | Dohody. Vlastník | FROM | Adresár. Zmluvy protistrán AS Dohody | | KDE | Dohody. Názov PODOBNÉ & Názov"; Vysledok = Query.Run(); Výber = Vysledok.Vyber(); Report("Dohody obsahujúce v názve: " + mText + " majú nasledujúce protistrany"); Kým Selection.Next() Cycle Report("Protistrana: " + Selection.Owner + "; Dohoda: " + Selection. Link EndIf; EndProcedure

43
NULL – chýbajúce hodnoty. Nezamieňať s nulovou hodnotou! NULL nie je číslo, nerovná sa medzera, prázdny odkaz alebo nedefinované. NULL je typotvorná hodnota, t.j. existuje typ NULL a jedna hodnota tohto typu. NULOVÝ... 26
Na generovanie a vykonávanie dotazov do databázových tabuliek na platforme 1C sa používa špeciálny objekt programovacieho jazyka Query. Tento objekt je vytvorený volaním konštrukcie New Request. Pohodlná požiadavka... 18
Článok poskytuje užitočné techniky pri práci s dopytmi 1C v.8.2, ako aj informácie, ktoré nie sú o jazyku dopytov také známe. Nesnažím sa poskytnúť úplný popis jazyka dopytu, ale chcem sa pozastaviť iba nad... 12
Bol som postavený pred úlohu vybrať všetky platobné doklady a zoskupiť ich podľa typu dokladu! Keď som si prezrel všetky bytové a komunálne služby a internet, uvedomil som si to jednoduchý spôsob get Typ dokumentu nie je v požiadavke:(Musel som...