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