1s 8 je v požadavku podobný. Podobné jako podmínky dotazu. Použití operátoru „jako“.

Podívejme se na účel a použití podmíněného operátoru LIKE (angl. LIKE) v dotazovacím jazyce 1C v příkladech.

Rychlý průchod

Účel

Zkontrolujte, zda hodnota řetězce v požadavku odpovídá zadanému vzoru – vrátí logickou hodnotu (TRUE nebo FALSE).

  • Kontrola je nezávislá na velikosti písmen.
  • Dotaz používá indexy tabulek – nesouvisí s indexy fulltextového vyhledávání.
  • Dokončení u velkých stolů může trvat dlouho.
  • Řetězce neomezené délky by měly být převedeny pomocí funkce SUBSTRING

Místa použití

  • V podmínkách provozovatele WHERE
  • V návrhových podmínkách VOLBA KDY<>PAK "" JINAK "" KONEC
  • V polích výběru (například: Název LIKE &ParametrPodobný jako StringSuitable)

Popis syntaxe operátoru LIKE

Parametr operátora musí být řetězec: může být zadán jako konstanta nebo předán jako parametr požadavku.

Níže uvedené literály (masky) lze použít společně nebo samostatně.

Přesná specifikace řetězce

VYBERTE prvních 10
Klíče. Jméno
Z
Directory.Keys AS klíče
KDE
Keys.Name PODOBNÉ až "1" // Ekvivalentní Keys.Name ="1"

Výsledek:

% je doslovný význam libovolného počtu libovolných znaků

VYBERTE prvních 10
Klíče. Jméno
Z
Directory.Keys AS klíče
KDE
Klíče. Název LIKE "%"

Výsledek: libovolných 10 položek

_ (podtržítko): doslovná shoda s libovolným jedním znakem

Příklad č. 1:

VYBERTE prvních 10
Klíče. Jméno
Z
Directory.Keys AS klíče
KDE
Keys.Name LIKE "_"

Příklad č. 2: počínaje libovolným znakem, následovaným „1“ a poté libovolnými znaky

VYBERTE prvních 10
Klíče. Jméno
Z
Directory.Keys AS klíče
KDE
Klíče. Název PODOBNÝ až „_1 %“

Výsledek:

(jeden nebo více znaků v hranatých závorkách)

  • Každý literál, který odpovídá libovolnému znaku, se používá jako NEBO.
    Je přijatelné zadat rozsah, například a-z,0-5, což znamená libovolný znak ze zadaného rozsahu

Příklad

VYBERTE prvních 10
Klíče. Jméno
Z
Directory.Keys AS klíče
KDE
Klíče. Název PODOBNÝ jako "[l] %"

Výsledek: 10 začínající na "l" nebo "z"

Příklad: počínaje 5,6,7

VYBERTE prvních 10
Klíče. Jméno
Z
Directory.Keys AS klíče
KDE
Klíče. Název LIKE "%"

Výsledek:

[^] (v hranatých závorkách je znak escape ^ následovaný jedním nebo více znaky)

Ekvivalent libovolného znaku (_) kromě těch, které jsou specifikovány ()

Příklad

VYBERTE prvních 10
Klíče. Jméno
Z
Directory.Keys AS klíče
KDE
Keys.Name PODOBNÉ jako "8.[^012]%"//nezahrnují 8.0,8.1,8.2

Výsledek: vše začíná na "8." kromě uvedených

SPECIÁLNÍ CHARACTER - příkaz pro specifikaci výše registrovaných znaků v požadavku

Jako symbol služby je přijatelné použít alespoň: #,~,/,\

Příklad:

VYBERTE prvních 10
Klíče. Jméno
Z
Directory.Keys AS klíče
KDE
Keys. Name LIKE "#_" SPECIÁLNÍ CHARAKTER "#"

Výsledek:

Použitelnost na platformách

Nesprávné parametry LIKE<>

  • Parametr není předán typ řetězce: například číslo 1 místo řetězce "1"
  • Pole neřetězcového typu je porovnáno s platnou maskou (například odkaz) nebo při připojování není hodnota kontrolována na IsNUL

Věnujte pozornost textu chyby, kde je otázka zobrazena:

Klíče.Název PODOBNÉ<>&L

Někdy nastane situace, kdy v 1C 8.3 nebo 8.2 potřebujete provést výběr, například z adresáře všech prvků, které mají ve svém názvu slovo „glaze“. Nebo z adresáře vyberte všechny dodavatele, jejichž příjmení obsahuje slovo „Ivan“. Obecně zkontrolujte nějakou hodnotu řetězce.

Pro tento účel existuje operátor v dotazech 1C 8.3 a 8.2 - „Podobné“. Používá se za následujících podmínek:

Získejte 267 videolekcí na 1C zdarma:

Jak používat šablony v dotazech 1C?

Chcete-li vytvořit podmínku výběru, musíte předat určitou šablonu jako parametr. Pro vytvoření šablony existují tzv. servisní symboly.

Například znak „%“ umožňuje libovolnou sekvenci libovolných znaků:

Existují další speciální znaky:

  • % (procento) - umožňuje libovolnou sekvenci libovolných znaků;
  • _ (podtržítko) - libovolný jednotlivý znak;
  • […] – jeden libovolný znak ze znaků uvedených v závorkách. Kromě výpisu znaků můžete použít rozsahy. Příklad: a-o;
  • [^...] – stejně jako předchozí, ale obráceně. Znak "^" znamená negaci.

Operátor JAKO umožňuje porovnat data typu řetězce v dotazu, který je umístěn nalevo od operátoru, s daty typu řetězce, který se nachází napravo od operátoru. Výsledek porovnání je vyhodnocen jako True nebo False, takže srovnání lze použít jako podmínku.

Pro operátora JAKO Existují speciální servisní znaky, které nejsou vnímány jako řetězec:

  • Symbol procenta "%": označuje přítomnost libovolného počtu libovolných znaků v řetězci
  • "[...]" jeden nebo více znaků v hranatých závorkách: označuje přítomnost kteréhokoli (jednoho) z uvedených znaků. Lze také zadat rozsah znaků (např.
  • "_" podtržítko: označuje přítomnost libovolného znaku
  • Negační znak „[^...]“: označuje přítomnost jakéhokoli jednotlivého znaku jiného než těch, které jsou uvedeny v hranatých závorkách
Pokud potřebujete zadat jeden z výše uvedených speciálních znaků pro porovnání, musíte použít klíčové slovo „SPECIÁLNÍ SYMBOL“

Vlastnosti použití s ​​různými DBMS

IBM DB2"Napravo od operátoru PODOBNÉ lze umístit pouze parametr. Jedinými zástupnými znaky jsou "_" (podtržítko znamená libovolný znak) a "%" (procento znamená posloupnost libovolných znaků).
V případě použití DBMS " PostgreSQL"nebo" Databáze Oracle"speciální znaky "hranaté závorky [...]" jsou akceptovány pouze v případě, že jsou uvedeny v textu v požadavku a NEJSOU předány jako parametr požadavku.

V databázi souborů tak budou speciální znaky vždy vnímány stejně a odlišně v závislosti na použitém DBMS ve verzi klient-server.

Příklad: vyberte produkty obsahující v názvu symbol "%".

VYBRAT | Ref.Link |OD | Katalog Nomenklatura JAK Ref | KDE | Ref.Name LIKE "%\%" SPECIÁLNÍ CHARAKTER "\"

Příklad: vyberte produkty, jejichž názvy začínají slovem „Tank“

VYBRAT | Ref.Link |OD | Katalog Nomenklatura JAK Ref | KDE | Ref.Name PODOBNÉ jako "Bak%"

Příklad: vyberte produkty, jejichž názvy končí číslem

VYBRAT | Ref.Link |OD | Katalog Nomenklatura JAK Ref | KDE | Ref.Name PODOBNÉ jako "%"

Operátor SIMILAR v dotazu kontroluje hodnoty řetězců z tabulek na podobnost se vzorem.
Používá se následovně: řetězec, který má být zkontrolován, je umístěn nalevo od tohoto operátoru a vzor je umístěn napravo.

Po kontrole vrátí True nebo False, podle toho se aktivně používá v podmínkách.
K vytvoření šablony se používají následující servisní znaky:

  • % (procento) - sekvence obsahující libovolný počet libovolných znaků
  • _ (podtržítko) - jeden libovolný znak
  • […] (jeden nebo více znaků v hranatých závorkách) – jakýkoli jednotlivý znak uvedený v hranatých závorkách
    Také kromě různé postavy můžete použít rozsahy, například a-z(A-z), což znamená, že v rozsahu je zahrnut libovolný znak, včetně konců rozsahu.
  • [^...] (v hranatých závorkách znak negace následovaný jedním nebo více znaky) – jakýkoli jednotlivý znak jiný než ty, které jsou uvedeny za znakem negace

Zbývající symboly jsou použity pro zamýšlený účel.
Pokud je nutné přenést jeden z výše uvedených servisních znaků jako symbol, pak mu musí předcházet<Спецсимвол>. Moje maličkost<Спецсимвол>(jakýkoli vhodný symbol) je definován ve stejném příkazu za klíčové slovo SPECIÁLNÍ SYMBOL.
Například vzor „%ABV[abvg]\_abv%“ SPECIÁLNÍ ZNAK „\“ znamená podřetězec sestávající z posloupnosti znaků:
písmena A; písmena B; písmena B; jedna číslice; jedno z písmen a, b, c nebo d; podtržítko; písmena a; písmena b; písmena v.
Navíc této sekvenci může předcházet libovolná sada znaků.

Postup Vyberte AgreementContainingInNameText(mText)
//V požadavku použijeme šablonu jako "%" + mText + "%" Požadavek = Nový požadavek; Query.SetParameter("Name", "%" + Text + "%"); Request.Text = "SELECT | Dohody. Odkaz, | Dohody. Vlastník | FROM | Adresář. Smlouvy protistran AS Dohody | | KDE | Dohody. Jméno PODOBNÉ & Název"; Výsledek = Query.Run(); Selection = Result.Select(); Report("Dohody obsahující v názvu: " + mText + " mají následující protistrany"); Zatímco Selection.Next() Cycle Report("Protistrana: " + Selection.Owner + "; Smlouva: " + Selection. Link EndIf; EndProcedure

43
NULL – chybějící hodnoty. Nezaměňovat s nulovou hodnotou! NULL není číslo, nerovná se mezera, prázdný odkaz nebo Nedefinováno. NULL je typotvorná hodnota, tzn. existuje typ NULL a jedna hodnota tohoto typu. NULA... 26
Pro generování a provádění dotazů do databázových tabulek na platformě 1C se používá speciální objekt programovacího jazyka Query. Tento objekt je vytvořen voláním konstrukce New Request. Pohodlná žádost... 18
Článek poskytuje užitečné techniky při práci s dotazy 1C v.8.2 a také informace, které nejsou o dotazovacím jazyce tak známé. Nesnažím se podat úplný popis jazyka dotazu, ale chci se zastavit pouze u... 12
Byl jsem postaven před úkol vybrat všechny platební doklady a seskupit je podle typu dokladu! Když jsem si prohlédl všechny bytové a komunální služby a internet, uvědomil jsem si to jednoduchý způsob get Typ dokumentu není v požadavku:(Musel jsem...