Операторы сравнения (компонент Database Engine)

Операторы сравнения используются с символьными, числовыми данными или данными даты и могут применяться в предложениях WHERE или HAVING запроса. Операторы сравнения вычисляются в логическом типе данных и возвращают TRUE или FALSE, в зависимости от результатов протестированного условия.

Например чтобы вычислить бонус для тех сотрудников, кто был нанят до 15 марта 1998 года включительно, производится вычисление, является ли значение hire_date для сотрудника меньшим или равным 15 марта 1998 года, в результате чего составляется список сотрудников, которым полагаются бонусы.

К допустимым операторам сравнения относятся:

  • > (больше, чем)

  • < (меньше, чем)

  • = (равно)

  • <= (меньше или равно)

  • >= (больше или равно)

  • != (не равно)

  • <> (не равно)

  • !< (не меньше, чем)

  • !> (не больше, чем)

Операторы сравнения могут также использоваться в программной логике для поиска условия. Например, если значением для страны или региона является Великобритания, а не Испания, могут применяться другие тарифы доставки. В таком случае для выполнения задачи используется сочетание, состоящее из оператора сравнения, выражения (имя столбца), литерала ('UK') и программного ключевого слова контроля потока (IF).

Имея доступ к действительным данным для запросов, можно использовать операторы сравнения в дополнительных запросах. В этих инструкциях, изменяющих данные, следует использовать операторы сравнения только в случае, если известно о наличии соответствующих разрешений, и что данные могут подвергаться изменению только ограниченной группой пользователей. Таким образом может поддерживаться целостность данных.

В запросах также используются построковые сравнения, чтобы сравнивать значение в локальной переменной, курсоре или столбце с константой. Например, должны быть распечатаны все строки данных о заказчиках, если в качестве страны или региона указана Великобритания. В нижеследующей таблице показаны примеры построкового сравнения между данными в формате Юникод и не в формате Юникод. ST1 имеет тип char, а ST2 имеет тип nchar.

Сравнение

Описание

ST1 = ST2

Эквивалентно CONVERT(nchar, ST1) = ST2 или CAST(ST1 как nchar) = ST2.

ST1 = 'строка Юникоде'

Сравнение обычных строк ISO.

ST2 = 'строка не Юникоде'

Эквивалентно ST2 = CONVERT(nchar, 'строка в Юникоде') или ST2 = CAST('строка не в Юникоде' AS nchar).

ST2 = N'строка в формате Юникод'

Сравнение в формате Юникод.

CONVERT(nchar, ST1) = ST2 или CAST(ST1 AS nchar) = ST2

Сравнение в формате Юникод.

ST1 = CONVERT(char, ST2) или ST1 = CAST(ST2 AS char)

Сравнение обычных строк ISO.

N'' (пустая строка в формате Юникод в скобках)

Пустая строка.

'' (пустая строка не в формате Юникод)

Либо пустая строка, либо строка, содержащая один пробел, в зависимости от настроек ISO.