28.01.2017

Оператор "ПОДОБНО" в запросе 1С

Автор: Белозерских Евгений

    Оператор ПОДОБНО позволяет сравнить в запросе данные строкового типа, находящиеся слева от оператора с данными строкового типа находящимися справа от оператора. Результат сравнения принимает значения "Истина" или "Ложь", таким образом сравнение можно применять в виде условия.

   Для оператора ПОДОБНО предусмотрены специальные служебные символы, которые не воспринимаются как строка:
  • "%" символ процента: обозначает наличие в строке любого количества произвольных символов
  • "[...]" один или несколько символов в квадратных скобках: обозначает наличие любого (одиночного) из перечисленных символов. Так же, может быть указан диапазон символов (например [a-f])
  • "_"символ подчеркивания: обозначает наличие любого произвольного символа
  • "[^...]" символ отрицания: обозначает наличие любого одиночного символа, кроме указанных в квадратных скобках
   Если необходимо для сравнения указать один из вышеперечисленных спецсимволов, необходимо воспользоваться ключевым словом "СПЕЦСИМВОЛ"

Особенности использования с различными СУБД

   В случае использования СУБД "IBM DB2" справа от оператора ПОДОБНО может располагаться только параметр. Шаблонные символы только "_" (подчеркивание означающее любой символ) и "%" (процент означающий последовательность любых символов).
   В случае использования СУБД "PostgreSQL" или "Oracle Database" спецсимволы "квадратные скобки [...]" воспринимаются только если указаны текстом в запросе, а НЕ передаются параметром в запрос.

   Таким образом, в файловой базе спецсимволы будут всегда восприниматься одинаково, и по разному в зависимости от используемой СУБД в клиент-серверном варианте.

Пример: выбрать товары, содержащие в наименовании символ "%"

	ВЫБРАТЬ
	|	Спр.Ссылка
	|ИЗ
	|	Справочник.Номенклатура КАК Спр
	|ГДЕ
	|	Спр.Наименование ПОДОБНО "%\%" СПЕЦСИМВОЛ "\"

Пример: выбрать товары, наименование которых начинает на слово "Бак"

	ВЫБРАТЬ
	|	Спр.Ссылка
	|ИЗ
	|	Справочник.Номенклатура КАК Спр
	|ГДЕ
	|	Спр.Наименование ПОДОБНО "Бак%"

Пример: выбрать товары, наименование которых оканчивается цифру

	ВЫБРАТЬ
	|	Спр.Ссылка
	|ИЗ
	|	Справочник.Номенклатура КАК Спр
	|ГДЕ
	|	Спр.Наименование ПОДОБНО "%[0-9]"

Другие статьи

NULL, ЕСТЬNULL() и ЕСТЬ NULL в запросах 1С

    Определяемся что же такое NULL в запросах 1С и как с таким значением работать

Получение в запросе 1С, курса валюты на дату документа

     Пример запроса 1С, для получения курса валюты документа, на дату документа.

Остатки по дням запросом 1С

      Пример запроса, который выводит информацию по остаткам товаров на каждый день, даже если не было движений

Нумерация строк в запросе 1С

Один из способов пронумеровать строки в запросе 1С

Оптимизация запросов 1С

В статье рассмотрены основные приемы по оптимизации запросов 1С. В отдельных случаях, понимая как работают механизмы платформы, возможно увеличить скорость выполнения запроса в РАЗЫ!