1s е първият знак в низа. Нови функции за низове

1s е първият знак в низа.  Нови функции за низове
1s е първият знак в низа. Нови функции за низове

Информацията в 1C може да бъде представена от: справочник, документ, регистър ...

В крайна сметка обаче всички тези обекти се състоят от полета, а полетата са от прости типове - номер, низ, дата. И винаги има повече информация под формата на низове. Следователно трябва да работите с струни по-често.

Сега ще анализираме как можете да работите с низове от езика 1C. Успоредно с това нека опитаме различни опции за автоматичен анализ на текст.

Типове низове

Низовете могат да бъдат ограничени по дължина или неограничени по дължина. Ако стойността на низа е взета от атрибут, тогава това ограничение е посочено в типа на атрибута.

Ако низът е въведен от потребителя във формуляра, тогава елементът на формуляра може да има квадратчетата за отметка „Многоредов режим“ и „Разширено редактиране“. Първият означава, че редът може да съдържа знаците "Прекъсване на ред 1C (Enter)". Второто е, че низът може да съдържа други служебни знаци на 1C, като TAB.

Ако низът е взет от файл, например с помощта на ReadText(), тогава кодирането също става важно - когато четете файла, трябва да посочите кодирането (UTF-8, KOI8 и т.н.).

Сервизни символи 1C

Да работя с специални символиИзползват се символи за изброяване 1C.

Например стойност на низ, състояща се от две думи:
TextString = "Първи ред" + Symbols.PS + "Втори ред";

Например, търсене на нов ред 1C в текста:
Позиция = Find(TextString, Symbols.PS);

Можете да работите със следните специални знаци:

  • CR и LF
    Означава нов ред 1C. Често се среща в текстови файлове.
    Кодът на знаците в ASCII е 0x0D и 0x0A, в Unicode е U+000D и U+000A.

    На езика 1C те изглеждат като Symbols.CR и Symbols.LF, или на руски Symbols.VK и Symbols.PS. За да прехвърлите линията 1C, когато е създадена в кода 1C, достатъчно е да използвате PS.

Други символи 1C

Низовете в 1C се използват "физически" във формат Unicode (Unicode, http://ru.wikipedia.org/wiki/%DE%ED%E8%EA%EE%E4).

Ако не сте се сблъсквали с "кодирането" на знаци преди, отбелязваме накратко:

  • При работа с низове компютърът използва номерата на буквите, а не самите букви.
  • Тъй като има много „човешки“ азбуки (английски, руски, гръцки, китайски и т.н., а също така има служебни и „непечатаеми“ 1C знаци), има няколко варианта на компютърни азбуки, една от които е Unicode , който включва 1C знаци на всички езици
  • Азбуката Unicode изглежда така:
    o Общи "непечатаеми" служебни символи 1C
    o Препинателни знаци и математика
    o Числа
    o английска азбука
    o Добавяне. 1C знаци от английската азбука, които се използват в европейските езици (например на немски)
    o гръцка азбука
    o Руска азбука
    о...

Ако е необходимо, е възможно да се използват всички 1C символи, налични в Unicode в 1C низове.

Първо, можете да ги въведете от клавиатурата, ако имате инсталирана подредба в Windows (по подразбиране английският и руският обикновено са зададени в Русия).

Второ, можете да набирате по следния метод:

Трето, можете да работите от програмния код. Функцията Symbol(Digit) връща знак с посочен номер, а функцията CharacterCode(String) връща номера на знака на първата буква в низа. Ако имате нужда от друга буква в низа, тогаваCharacterCode(String, LetterNumber).

Например, нека добавим знака Ž към следния ред:
TextString = "Добра бира в града" + Symbol(381) + "drobinek";
//Резултат: "Добра бира в Ždrobinek"

Низовете в 1C 8.3 във вградения език 1c са стойности от примитивен тип Линия. Стойности от този типсъдържа Unicode низ с произволна дължина. Променливите тип низ са набор от знаци, оградени в кавички.

Пример 1. Нека създадем низова променлива с текст.

StringVariable = "Здравей свят!";

Функции за работа с низове в 1s 8.3

Този раздел ще предостави основните функции, които ви позволяват да променяте редове за 1s или да анализирате информацията, съдържаща се в тях.

StrLength

StrLength(<Строка>) . Връща броя знаци, съдържащи се в низа, предаден в параметъра.

Пример 2. Нека преброим броя на символите в низа "Hello world!".

String = "Здравей свят!"; Брой знаци = StrLength(String); Доклад (Брой знаци);

Резултатът от изпълнението на този код ще покаже броя на символите в низа: 11.

Съкратено

съкращение(<Строка>) . Изрязва незначещите знаци отляво на първия значим знак в низ.
Незначителни герои:

  • пространство;
  • непрекъсваемо пространство;
  • табулиране;
  • връщане на карета;
  • редов превод;
  • превод на формуляра (страница).

Пример 3. Премахнете всички интервали от лявата страна на низа "peace!" и добавете низа "Hello" към него.

Низ = abbr("свят!"); String = "Hi"+String; Уведомяване (низ);

Резултатът от изпълнението на този код ще бъде показването на низа "Hello world!".

Съкращение

съкращение(<Строка>) . Изрязва незначещите знаци отдясно на първия значим знак в низ.

Пример 4. Формуляр от низовете "Hello" и "world!" фраза "Здравей свят!"

Низ = abbr("Hi")+" "+abbr("свят!"); Уведомяване (низ);

Съкратено LP

Abbrl(<Строка>) . Изрязва незначещите знаци отдясно на първия значим знак в низа, също така изрязва незначещите знаци отляво на първия значим знак в низа. Тази функцияизползва се по-често от предишните две, тъй като е по-универсален.

Пример 5. Премахване на незначещите знаци отляво и отдясно в името на контрагента.

Изпълнител = Directories.Contractors.FindBy Details("TIN", "0777121211"); ContractorObject = Contractor.GetObject(); ContractorObject.Description = Съкратено LP(ContractorObject.Description); ContractorObject.Write();

лъв

Лъв(<Строка>, <ЧислоСимволов>) . Получава първите знаци от низ, броят на знаците е посочен в параметъра Брой знаци.

Пример 6. Нека структурата служителсъдържат името, фамилията и бащиното име на служителя. Вземете низ с фамилия и инициали.

InitialName = Lion(Employee.Name, 1); Бащино име = Лео (Служител. Бащино име, 1); Пълно име = Employee.LastName + " " + FirstName Initial + "." + Патроним Инициал + ".";

права

точно(<Строка>, <ЧислоСимволов>) . Получава последните знаци от низ, броят на знаците е посочен в параметъра Брой знаци.Ако зададеният брой знаци надвишава дължината на низа, тогава се връща целият низ.

Пример 7. Нека датата бъде записана в края на низова променлива във формат “yyyymmdd”, вземете низ с дата и го преобразувайте във вид дата.

низ = " Текущата дата: 20170910"; StringDate = Права(String, 8); Дата = Дата(StringDate);

сряда

сряда(<Строка>, <НачальныйНомер>, <ЧислоСимволов>) . Получава подниз от низа, предаден в параметъра Линия, започвайки от знака, чийто номер е посочен в параметъра Начален номери дължината, предадена на параметъра Брой знаци.Номерирането на знаците в низ започва от 1. Ако параметърът Начален номере зададена стойност, по-малка или равна на нула, тогава параметърът приема стойност 1. Ако параметърът Брой знацине е указано, се избират знаци до края на низа.

Пример 8. Нека низовата променлива съдържа регионалния код, започващ от деветата позиция, трябва да го получите и да го запишете на отделен ред.

String = "Регион: 99 Москва"; Регион = ср. (ред, 9, 2);

PageFind

StrFind(<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) . Търси посочения подниз в низ, връща номера на позицията на първия знак от намерения подниз. Помислете за параметрите на тази функция:

  • Линия. Изходен низ;
  • SubstringSearch. Желаният подниз;
  • DirectionSearch. Указва посоката за търсене на подниз в низ. Може да приема стойности:
    • Посока на търсене. От самото начало;
    • Посока на търсене. От края;
  • Начална позиция. Указва позицията в низа, от която да започне търсенето;
  • Входящ номер. Указва броя на срещанията на търсения подниз в изходна линия.

Пример 9. В реда "Hello world!" определяне на позицията на последното появяване на знака "и".

PositionNumber = StrFind("Здравей свят!", "и", SearchDirection.From End); Известяване (номер на позиция);

Резултатът от изпълнението на този код ще бъде показването на номера на последното появяване на символа "и" на екрана: 9.

VReg

VReg(<Строка>) . Преобразува всички знаци на посочения низ в 1s 8 в главни букви.

Пример 10. Преобразувайте низа "hello world!" до главни букви.

StringVreg = Vreg("здравей свят!"); Доклад (StringVreg);

Резултатът от изпълнението на този код ще бъде показването на низа "HELLO WORLD!"

HReg

HReg(<Строка>) . Преобразува всички знаци на посочения низ в 1s 8 в малки букви.

Пример 11. Преобразувайте низа "HELLO WORLD!" до малки букви.

StringNreg = NReg("HELLO WORLD!"); Доклад (StringVreg);

Резултатът от изпълнението на този код ще бъде показването на низа "hello world!"

TReg

TReg(<Строка>) . Преобразува низ по следния начин: първият знак от всяка дума се преобразува в главни букви, останалите знаци от думата се преобразуват в малки букви.

Пример 12. Напишете с главни букви първите букви на думите в низа "hello world!".

StringTreg = TReg("здравей свят!"); Доклад(StringTreg);

Резултатът от изпълнението на този код ще бъде показването на низа "Hello World!"

Символ

символ (<КодСимвола>) . Получава знак по неговия Unicode код.

Пример 13. Добавете ляво и дясно към реда "Hello World!" символ ★

StringWithStars = Знак("9733")+"Здравей свят!"+Знак("9733"); Доклад(StringWithStars);

Резултатът от изпълнението на този код ще бъде показването на низа "★Hello World!★"

SymbolCode

Символен код(<Строка>, <НомерСимвола>) . Получава кода на символа Unicode от низа, посочен в първия параметър, разположен на позицията, посочена във втория параметър.

Пример 14. Намерете кода на последния знак в низа "Hello World!".

String = "Здравей свят!"; Код на символ =Код на символ (низ, StrLength (низ)); Известяване (Код на символ);

Резултатът от изпълнението на този код ще бъде показването на кода на символа "!" — 33.

Празен ред

Празен ред(<Строка>) . Проверява дали низът се състои само от незначещи знаци, тоест дали е празен.

Пример 15. Проверете дали низът е празен и се състои от три интервала.

Empty = EmptyString(" "); Доклад (празен);

Резултатът от изпълнението на този код ще бъде показването на думата "Да" (низов израз на булева стойност Вярно).

StrReplace

StrReplace(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) . Намира всички срещания на търсения подниз в изходния низ и го заменя със заместващия подниз.

Пример 16. В реда "Hello World!" заменете думата "Свят" с думата "Приятели".

String = StrReplace("Здравей свят!", "Свят", "Приятели"); Уведомяване (низ);

Резултатът от изпълнението на този код ще бъде показването на низа "Здравейте приятели!"

StrNumberRows

StrNumber of Lines(<Строка>) . Позволява ви да преброите броя на редовете в многоредов низ. За преминаване към нов ред в 1s 8 се използва символът PS(символ за подаване на ред).

Пример 17. Определете броя на редовете в текста:
"Първа линия
Втора линия
Трети ред"

Number = StrNumber of Lines("Първи ред"+Symbols.PS +"Втори ред"+Symbols.PS +"Трети ред"); Доклад (номер);

Резултатът от изпълнението на този код ще бъде показването на броя редове в текста: 3

StrGetString

StrGetString(<Строка>, <НомерСтроки>) . Получава низ в многоредов низ по неговия номер. Номерацията на редовете започва от 1.

Пример 18. Вземете последния ред в текста:
"Първа линия
Втора линия
Трети ред"

Text = "Първи ред"+Знаци.PS +"Втори ред"+Знаци.PS +"Трети ред"; LastLine = StrGetLine(Текст, StrNumber of Lines(Text)); Известяване (последен ред);

Резултатът от изпълнението на този код ще бъде показването на реда "Трети ред".

StrNumberOccurrences

StrNumberOccurrences(<Строка>, <ПодстрокаПоиска>) . Връща броя на срещанията на посочения подниз в низ. Функцията е чувствителна към главни и малки букви.

Пример 19. Определете колко пъти буквата "c" влиза в реда "Редове в 1s 8.3 и 8.2", независимо от главния й регистър.

String = "Редове в 1s 8.3 и 8.2"; Брой повторения = StrNumber of Occurrences(Vreg(String), "C"); отчет (брой събития);

Резултатът от изпълнението на този код ще покаже броя на срещанията на екрана: 2.

PageBeginsFrom

StrBeginsFrom(<Строка>, <СтрокаПоиска>) . Проверява дали низът, даден в първия параметър, започва с низа във втория параметър.

Пример 20. Определете дали TIN на избрания контрагент започва с числото 1. Нека променливата контрагент Контрагенти.

TIN = Изпълнител.TIN; StartsCUnits = StrStartsC(TIN, "1"); If StartsFROM1 Then //Вашият код EndIf;

Страницата завършва на

StrEndsOn(<Строка>, <СтрокаПоиска>) . Проверява дали низът, предаден в първия параметър, завършва с низа във втория параметър.

Пример 21. Определете дали TIN на избрания контрагент завършва с числото 2. Нека променливата контрагентвръзката към елемента на директорията се съхранява Контрагенти.

TIN = Изпълнител.TIN; Завършва с две = Str Завършва с (TIN, "2"); Ако завършва с две, тогава //Вашият код EndIf;

PageSplit

StrDivide(<Строка>, <Разделитель>, <ВключатьПустые>) . Разделя низ на части по посочените разделителни знаци и записва получените низове в масив. Първият параметър съхранява оригиналния низ, вторият параметър съдържа низа, съдържащ разделителя, третият параметър указва дали да се записва в масива празни редове(по подразбиране Вярно).

Пример 22. Да предположим, че имаме низ, съдържащ числа, разделени със символа ";", вземете масив от числа от низа.

Низ = "1; 2; 3"; Array = StrSplit(String, ";"); For Count = 0 Чрез Array.Quantity() - 1 опит за цикъл Array[Count] = Number(Ablp(Array[Count])); Изключение Array[W] = 0; EndTry EndCycle;

В резултат на изпълнението ще се получи масив с числа от 1 до 3.

StrConnect

StrConnect(<Строки>, <Разделитель>) . Преобразува масив от низове от първия параметър в низ, съдържащ всички елементи на масива, като използва разделителя, посочен във втория параметър.

Пример 23. Използвайки масива от числа от предишния пример, вземете оригиналния низ.

For Count = 0 Чрез Array.Quantity() - 1 цикъл Array[Count] = String(Array[Count]); EndCycle; String = StrConnect(Array, "; ");

Внедрено във версия 8.3.6.1977.

Разширихме набора от функции за работа с низове. Направихме това, за да ви предоставим по-усъвършенствани инструменти за анализиране на низови данни. Новите функции ще бъдат удобни и полезни при технологични задачи за анализ на текст. В задачи, свързани с парсване на текст, който съдържа данни във форматиран вид. Това може да бъде анализ на някои файлове, получени от оборудването, или например анализ на технологичен дневник.

Всички действия, които новите функции изпълняват, можехте да извършвате преди. С помощта на повече или по-малко сложни алгоритми, написани на вграден език. Следователно новите функции не ви дават принципно нови възможности. Те обаче ви позволяват да намалите количеството код, да направите кода по-прост и по-разбираем. В допълнение, те ви позволяват да ускорите изпълнението на действията. Тъй като функциите, внедрени в платформата, работят, разбира се, по-бързо от подобен алгоритъм, написан на вградения език.

Функция за форматиране StrTemplate()

Тази функция замества параметри в низ. Необходимостта от такова преобразуване често възниква, например, когато се показват предупредителни съобщения. Синтаксисът за тази функция е както следва:

StrTemplate(<Шаблон>, <Значение1-Значение10>)

<Шаблон>е низът, в който да се заменят представянията на параметрите.

<Значение1> , ... <Значение10>- това са параметрите (максимум - десет), чиито представяния трябва да бъдат заменени в низа.

За да посочите конкретно място в шаблона, на което искате да извършите заместването, трябва да използвате маркери във формата %1, ... %10. Броят на маркерите, включени в шаблона, и броят на параметрите, съдържащи стойности, трябва да съвпадат.

Например резултатът от изпълнението на такъв оператор:

ще има ред:

Грешка в данните на ред 2 (изисква тип дата)

Низова функция StrCompare()

Тази функция сравнява два низа без значение за главни и малки букви. Например така:

Можете да извършите същото действие, преди да използвате обекта ValueComparison:

Използването на новата функция обаче изглежда по-просто. Освен това функцията, за разлика от обекта Value Compare, работи както в тънкия клиент, така и в уеб клиента.

Функции за низове StrBeginsC(), StrEndsTo()

Тези функции определят дали даден низ започва с определен подниз или дали низът завършва с определен подниз. Алгоритъмът на тези функции не е труден за изпълнение на вграден език, но тяхното присъствие ви позволява да пишете по-чист и разбираем код. И работят по-бързо.

Например, те са удобни за използване в израза If:

Функции за работа с низове StrSplit(), StrJoin()

Тези функции разделят низа на части според зададения разделител. Или обратното, те комбинират няколко реда в един, като вмъкват избрания разделител между тях. Те са удобни за създаване или анализ на дневници, технологичен дневник. Например, можете лесно да разглобите запис в технологичен дневник на части, подходящи за допълнителен анализ:

Функция за работа с низове StrFind()

Вместо старата функция Find(), внедрихме нова функция, който има допълнителни функции:

  • Търсене в различни посоки (от началото, от края);
  • Търсене от посочената позиция;
  • Търсене на събитие с посочения номер (второ, трето и т.н.).

Всъщност тя дублира възможностите на старата функция. Това се прави, за да се поддържа съвместимост с модули, компилирани в по-стари версии. Препоръчва се старата функция Find() да не се използва повече.

По-долу е даден пример за използване на новите възможности за търсене. Търсенето назад е полезно, когато имате нужда от последния фрагмент от формализиран низ, например, пълно имефайл в URL. И търсенето от определена позиция помага в случаите, когато трябва да търсите в известен фрагмент, а не в целия низ.

String е един от примитивните типове данни в системите 1C:Enterprise 8. Променливи с тип линиясъдържат текст.

Тип променливи стойности линияса оградени в двойни кавички. Могат да се добавят няколко променливи от този тип.

Per1 = "Дума 1" ;
Per2 = "Дума 2";
Per3 = Per1 + " " + Per2 ;

В крайна сметка Per3ще има значение" Слово 1 Слово 2″.

Освен това системите 1C:Enterprise 8 предоставят функции за работа с низове. Помислете за основните:

Въведете низ (<Строка>, <Подсказка>, <Длина>, <Многострочность>) — функцията е проектирана да показва диалогов прозорец, в който потребителят може да посочи стойността на променлива от тип Линия. Параметър <Строка> е задължителен и съдържа името на променливата, в която ще бъде записан въведеният низ. Параметър <Подсказка> незадължително е заглавието на диалоговия прозорец. Параметър <Длина> незадължително, показва максималната дължина на входния низ. По подразбиране е нула, което означава неограничена дължина. Параметър <Многострочность> по желание. Указва режима на въвеждане многоредов текст: True - въвеждане на многоредов текст с разделители на редовете; False - Въведете прост низ.

Може да се въведе низ и, знаейки кода на знака в Unicode:

символ (<КодСимвола>) — Кодът се въвежда като число.

Буква= Символ(1103 ) ; // аз

Има и обратна функция, която ви позволява да разберете кода на символ.

Символен код(<Строка>, <НомерСимвола>) — Връща Unicode номера на посочения знак като число.

Функции за преобразуване на главни и малки букви на текста:

VReg(<Строка>) - Преобразува всички знаци в низ в главни букви.

HReg(<Строка>) - Преобразува всички знаци в низ в малки букви.

TReg(<Строка>) - преобразува всички символи на низа в главни букви. Това означава, че първите букви във всички думи се преобразуват в главни, а останалите букви се преобразуват в малки.

Функции за търсене и заместване на символи в низ:

Намирам(<Строка>, <ПодстрокаПоиска>) - намира номера на символа на срещането на търсения подниз. Например:

Find ("String" , "eye" ) ; // 4

StrFind(<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) — намира номера на символа на срещането на търсения подниз, номерът на срещане е посочен в съответния параметър. В този случай търсенето започва от знака, чийто номер е посочен в параметъра Начална позиция.Търсенето е възможно от началото или от края на низа. Например:

Number4 Entry= StrFind( "Отбрана", "o" , Посока на търсене. Първо, 1 , 4 ); // 7

StrReplace(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) Намира всички срещания на търсения подниз в изходния низ и го заменя със заместващия подниз.

StrReplace("String" , "eye" , "" ) ; // Страница

Празен ред(<Строка>) - проверява низа за значими знаци. Ако няма значими знаци или изобщо няма знаци, тогава се връща стойността Вярно. В противен случай - Лъжа.

StrNumberOccurrences(<Строка>, <ПодстрокаПоиска>) – изчислява броя на срещанията на търсения подниз в изходния низ.

StrNumberOccurrences ( „Учи, учи и пак учи“, "проучване" , "" ) ; // 3

StrTemplate(<Строка>, <ЗначениеПодстановки1>…<ЗначениеПодстановкиN> — замества параметрите в низа по число. Низът трябва да съдържа маркери за заместване във формата: "%1..%N". Номерирането на маркерите започва от 1. Ако стойността на параметъра Недефиниран, празният низ се замества.

StrPattern ( "Опция 1 = %1, Опция 2 = %2", "1" , "2" ) ; // Параметър 1= 1, Параметър 2 = 2

Функции за преобразуване на низове:

Лъв(<Строка>, <ЧислоСимволов>) връща първите знаци от низа.

точно(<Строка>, <ЧислоСимволов>) - връща последните знаци от низа.

сряда(<Строка>, <НачальныйНомер>, <ЧислоСимволов>) - връща низ с дължина<ЧислоСимволов>, започвайки със знак<НачальныйНомер>.

съкращение(<Строка>) съкращава незначещите знаци отляво на първия значим знак в низа.

съкращение(<Строка>) - отрязва незначителните символи вдясно от последния значим знак в низа.

Abbrl(<Строка>) - прекъсва незначещите знаци отляво на първия значим знак в низа и отдясно на последния значим знак в низа.

StrGetString(<Строка>, <НомерСтроки>) – получава низа от многоредов низ по номер.

Други функции:

StrLength(<Строка>) - връща броя знаци в низ.

StrNumber of Lines(<Строка>) - връща броя на редовете в многоредов низ. Един ред се счита за нов, ако е отделен от предишния ред със знак за нов ред.

StrCompare(<Строка1>, <Строка2> ) - сравнява два низа без големи и малки букви. Функцията работи като обект Сравняване на стойности. Се завръща:

  • 1 - ако първият ред е по-голям от втория
  • -1 - ако вторият ред е по-голям от първия
  • 0 - ако низовете са равни

StrCompare("Първи ред" , "Втори ред" ) ; // 1

Има няколко механизма за работа с низове в 1C заявки. Първо, могат да се добавят низове. Второ, подниз може да бъде взет от низ. Трето, низовете могат да се сравняват, включително по модел. Това е почти всичко, което можете да правите със струни.

Добавяне на низове

Операторът "+" се използва за добавяне на низове в заявка. Можете да добавяте само низове с ограничена дължина.

ИЗБЕРЕТЕ "Име: " + Contractors.Name AS Column1 FROM Directory.Contractors AS Contractors WHERE Contractors.Reference = &Reference

Поднизова функция

ПОДНИЗ(<Строка>, <НачальнаяПозиция>, <Длина>)

Аналог на функцията Environment() от обектния модел. Функцията Substring() може да се приложи към данни от тип низ и ви позволява да изберете фрагмент <Строки> , започвайки с цифра <НачальнаяПозиция> (знаците в низ са номерирани от 1) и дължина <Длина> герои. Резултатът от оценката на функцията има тип низ с променлива дължина и дължината ще се счита за неограничена, ако <Строка> има неограничена дължина и параметър <Длина> не е константа или по-голямо от 1024.

Ако дължината на низа е по-малка от зададената във втория параметър, тогава функцията ще върне празен низ.

внимание!Не се препоръчва използването на функцията SUBSTRING() за преобразуване на низове с неограничена дължина в низове с ограничена дължина. Вместо това е по-добре да използвате cast оператора EXPRESS().

Функция Подобна

Ако трябва да се уверим, че атрибутът string отговаря на определени критерии, ние го сравняваме:

SELECT Counterparties.Name AS Column1 FROM Directory.Counterparties AS Counterparties WHERE Counterparties.Name = "Gazprom"

Но какво ще стане, ако е необходимо по-фино сравнение? Не само за равенство или неравенство, а за сходство с определен модел? Точно за това е създадена функцията LIKE.

LIKE - Оператор за проверка дали даден низ е подобен на шаблон. Аналог на LIKE в SQL.

Операторът LIKE ви позволява да сравните стойността на израза, посочен вляво от него, с шаблонния низ, посочен вдясно. Стойността на израза трябва да е от тип низ. Ако стойността на израза съвпада с шаблона, резултатът от оператора ще бъде TRUE, в противен случай ще бъде FALSE.

Следните знаци в низа на шаблона са служебни и имат различно значение от символа на низа:

  • % (процент): поредица, съдържаща произволен брой произволни знаци;
  • _ (долна черта): един произволен знак;
  • […] (един или повече знаци в квадратни скоби): всеки отделен знак, изброен в квадратни скоби. Едно изброяване може да съдържа диапазони, като a-z, което означава всеки знак в диапазона, включително краищата на диапазона;
  • [^…] (в квадратни скоби знак за отрицание, последван от един или повече знака): Всеки отделен знак, различен от изброените след знака за отрицание.

Всеки друг символ означава себе си и не носи допълнително натоварване. Ако е необходимо да се напише един от изброените знаци като себе си, тогава той трябва да бъде предшестван от<Спецсимвол>. себе си<Спецсимвол>(всеки подходящ знак) се дефинира в същия израз след ключова думаСПЕЦИАЛЕН СИМВОЛ.