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