Операторы сравнения (компонент 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 = 'строка не в формате Юникод'

Обычное построковое сравнение согласно SQL-92.

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)

Обычное построковое сравнение согласно SQL-92.

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

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

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

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

См. также

Другие ресурсы

= (равно) (Transact-SQL)
<> (Не равно) (Transact-SQL)
> (больше) (Transact-SQL)
!< (не меньше) (Transact-SQL)
< (меньше) (Transact-SQL)
!= (не равно) (Transact-SQL)
>= (Больше или равно) (Transact-SQL)
!> (Не больше чем) (Transact-SQL)
<= (меньше или равно) (Transact-SQL)
Предложение WHERE (Transact-SQL)

Справка и поддержка

Получение помощи по SQL Server 2005