Системы обработки информации - язык баз данных SQL

<Предикат сравнения> (<comparison predicate>)


Функция

Специфицирует сравнение двух значений.

Формат

<comparison predicate> ::=

<value expression> <comp op>

{<value expression> | <subquery>}

<comp op> ::=

= | <> | < | > | <= | >=

Синтаксические правила

  • Тип данных первого <выражения, вырабатывающего результат> (<value expression>) и <подзапроса> (<subquery>) или второго <выражения, вырабатывающего значение> (<value expression>) должны быть сравнимыми.
  • Общие правила

  • Пусть x обозначает результат первого <выражения, вырабатывающего значение> (<value expression>) и пусть y обозначает результат <подзапроса> (<subquery>) или второго <выражения, вырабатывающего значение> (<value expression>). Мощность результата <подзапроса> (<subquery>) не должна быть больше единицы.
  • Если x или y являются неопределенными значениями или если результат <подзапроса> (<subquery>) пустой, то результатом "x <comp op> y" является unknown.
  • Если x и y являются не неопределенными значениями, то результатом "x <comp op> y" является true или false: "x = y" есть true тогда и только тогда, когда x и y равны. "x <> y" есть true тогда и только тогда, когда x и y не равны. "x < y" есть true тогда и только тогда, когда x меньше, чем y. "x > y" есть true тогда и только тогда, когда x больше, чем y. "x <= y" есть true тогда и только тогда, когда x не больше, чем y. "x >= y" есть true тогда и только тогда, когда x не меньше, чем y.
  • Числа сравниваются в соответствии с их алгебраическими значениями.
  • Сравнение двух символьных строк определяется через сравнение <символов> (<character>) с одинаковыми порядковыми позициями. Если строки не имеют одинаковую длину, то сравнение производится с рабочей копией более короткой строки, дополненной справа пробелами <space> таким образом, чтобы она имела длину, равную длине другой строки.
  • Две строки равны, если все <символы> (<character>) с одинаковыми порядковыми позициями совпадают. Если две строки не равны, то их отношение определяется на основе сравнения первой пары неравных <символов> (<character>) с левого конца строк. Это сравнение производится в соответствии с определенной в реализации последовательностью сопоставления.
  • Хотя "x = y" есть unknown, если x и y являются неопределенными значениями, в контекстах GROUP BY, ORDER BY и DISTINCT неопределенное значение идентично или является дубликатом другого неопределенного значения.
  • | |



    Содержание раздела