118 документов
← К списку

Правила сравнения значений

страница

Поскольку в языке запросов могут сравниваться значения разных типов, определены правила, по которым выполняется сравнение двух значений. Данные правила используются для:

  • сравнения значений в операторах сравнения;
  • определения максимального и минимального значений в агрегатных функциях МИНИМУМ и МАКСИМУМ;
  • упорядочивания записей результата запроса в соответствии с порядком, заданным в предложении УПОРЯДОЧИТЬ ПО.

Если типы значений отличаются друг от друга, то отношения между значениями определяются на основании приоритета типов:

Отношения между различными ссылочными типами определяются на основе внутренних ссылочных номеров таблиц, соответствующих тому или иному типу.

Если типы данных совпадают, то производится сравнение значений по следующим правилам:

  • у типа Булево значение ИСТИНА больше значения ЛОЖЬ;
  • у типа ЧИСЛО обычные правила сравнения для чисел;
  • у типа ДАТА более ранние даты меньше более поздних;
  • у типа СТРОКА сравнения производится в соответствии с установленными национальными особенностями базы данных;
  • ссылочные типы сравниваются на основе своих значений (номера записи и т. п.);
  • для массивов выполняется последовательное сравнение элементов массива;
  • для таблиц значений выполняется последовательное сравнение элементов таблиц;
  • для объектов не примитивного типа, не ссылочных типов, не явлющихся массивом или таблицей значний:
    • При упорядочивании сравнение выполняется по строковому представлению сравниваемых объектов.
    • При сравнении с использованием операторов = и <>, выполняется проверка на то, что объект сравнивается сам с собой.
    • При сравнении с использованием операторов <, <=, >  и >= генерируется исключение "Попытка сравнения не сравниваемых значений". Например: если в группировке происходит упорядочивание по функции ВычислитьВыражениеСГруппировкойМассив ("Сумма(СуммаОборот)", "Контрагент")) то упорядочивание при формировании отчета всегда будет одинаковым – по содержимому полученных массивов.
  • не допускается сравнение полей неограниченной длины (строки неограниченной длины, ХранилищеЗначения, поле ТИПЗНАЧЕНИЯ из таблицы планов видов характеристик).

Важно! Любая операция сравнения двух значений, в которой участвует хотя бы одно значение NULL, дает результат, аналогичный значению ЛОЖЬ.

 

см. также: Логические выражения