Результат этого запроса представлен в табл. 3.1. Таблица 3.1. Результат выполнения запроса

Как вы видите, при сравнении строк с помощью этого оператора регистр символов не учитывается.

Следующий оператор также проверяет равенство двух операндов.

Оператор x < = > у

В случае, когда оба операнда не равны NULL, данный оператор аналогичен оператору «равно». Если один из операндов равен NULL, оператор < = > возвращает значение 0 (FALSE), а если оба операнда равны NULL – значение 1 (TRUE).

Например, запрос

SELECT 100 = NULL, 100< = >NULL, NULL = NULL, NULL< = >NULL;

возвращает результат (табл. 3.2) и наглядно иллюстрирует различие между операторами = и < = >. Таблица 3.2. Результат выполнения запроса

Следующие операторы проверяют равенство операнда какому-либо логическому значению.

Оператор x IS y, где y – TRUE, FALSE, UNKNOWN или NULL

Выражением IS TRUE возвращает 1 (TRUE), если x – отличное от нулячисло или отличная от нулевой («0000-00-00 00:00:00») дата и/или время, и 0 (FALSE) – в остальных случаях.

Выражением IS FALSE возвращает 1 (TRUE), еслихравен нулю либо нулевой дате и/или времени, и 0 (FALSE) – в остальных случаях.

...

Примечание

Если x является символьной строкой, то перед сравнением с TRUE или FALSE эта строка преобразуется в число. Для этого отбрасываются все символы, начиная с первого, недопустимого в числовом значении, а начальная подстрока рассматривается как число. Если первый символ в значении – буква или пустая строка («»), то x приравнивается к нулю.

Выражениях IS UNKNOWN их IS NULL возвращают 1 (TRUE), еслихравен NULL, и 0 (FALSE) – в остальных случаях.

Например, запрос

SELECT 100 IS TRUE, 0 IS TRUE, \'2007-12-12\' IS TRUE, \'0000-00-00\' IS TRUE, NULL IS TRUE;

возвращает результат, представленный в табл. 3.3. Таблица 3.3. Результат выполнения запроса

Запрос

SELECT 100 IS FALSE, 0 IS FALSE, \'2007-12-12\' IS FALSE, \'0000-00-00\' IS FALSE, NULL IS FALSE;

возвращает результат, представленный в табл. 3.4. Таблица 3.4. Результат выполнения запроса

Запрос

SELECT 100 IS NULL, 0 IS NULL, \'2007-12-12\' IS NULL, \'0000-00-00\' IS NULL, NULL IS NULL;

возвращает результат, представленный в табл. 3.5. Таблица 3.5. Результат выполнения запроса

...

Примечание

Если столбец определен как DATE NOT NULL (или DATETIME NOT NULL), то значение этого столбца, равное «0000-00-00» (или «0000-00-00 00:00:00»), рассматривается оператором IS NULL как NULL. Например, если при создании таблицы Orders (Заказы) (см. листинг 2.4 в главе 2) задать для столбца date (дата) свойство NOT NULL, то запрос SELECT * FROM Orders WHERE date IS NULL; выведет строки, в которых дата заказа равна «0000-00-00».

Следующие операторы проверяют несовпадение двух операндов.

Операторы x! = y, x <> y

Оператор «не равно» возвращает следующие значения:

• 1 (TRUE) – если х и y различны;

• 0 (FALSE) – если х и y совпадают;

• NULL – если по крайней мере один из операндов равен NULL.

Например, запрос

SELECT * FROM Customers WHERE name! = \'КРЫЛОВ\

Перейти на страницу:

Похожие книги