double arrow

NOT LIKE

NOT IN

NOT BETWEEN

Неравенство

Вы уже знаете о возможности проверки неравенства с помощью операции <>. Неравенство упоминается здесь потому, что при проверке неравенства вы фактически отрицаете операцию проверки равенства. Вот другой метод представления операции проверки неравенства, доступный в некоторых реализациях SQL.

Пример_________________________Значение____________

WHERE SALARY <> '20000' Зарплата не равна 20000

WHERE SALARY != '20000' Зарплата не равна 20000

Во втором случае для отрицания равенства используется восклицательный знак. В некоторых реализациях SQL в дополнение к стандартному знаку неравенства о используется восклицательный знак ! в совокупности со знаком = как отрицание равенства.

Проверьте по документации используемой вами реализации SQL, допускается ли в ней применение восклицательного знака для отрицания равенства.

Отрицание операции BETWEEN используется следующим образом.

Пример_____________________Значение___________________

WHERE SALARY NOT BETWEEN Зарплата не должна находиться в диапазоне от

'20000' AND '30000' 20000 до 30000, включая крайние значения

диапазона

SELECT * FROM PRODUCTS_TBL WHERE NOT BETWEEN 5.95 AND 14.5;

PROD_ID PROD_DESC COST

11235 КОСТЮМ ВЕДЬМЫ 29.99

13 ИСКУССТВЕННЫЕ ПАРАФИНОВЫЕ ЗУБЫ 1.1

9 СЛАДКАЯ КУКУРУЗА 1.35

6 ТЫКВЕННЫЕ КОНФЕТЫ 1.45

87 ПЛАСТИКОВЫЕ ПАУКИ 1.05

119 МАСКИ В АССОРТИМЕНТЕ 4.95

2345 ПОЛОЧКА ИЗ ДУБА 59.99

Не забывайте о том, что BETWEEN предполагает включение в рассмотрение границ диапазона. Именно поэтому в данном примере строки со значениями 5.95 и 14 .5 выведены не были.

Отрицанием IN является NOT IN. В следующем примере любое из возвращенных значений зарплаты не должно равняться какому-нибудь значению из заданного списка.

Пример________________________________Значение______

WHERE SALARY NOT IN ('20000', Зарплата не должна равняться20000, 30000

'30000', '40000') или 40000

SELECT *

FROM PRODUCTS_TBL WHERE PROD_ID NOT IN (‘13', '9’, '87', '119');

PROD_ID PROD_DESC COST

11235 КОСТЮМ ВЕДЬМЫ 29.99

222 ПЛАСТИКОВЫЕ ТЫКВЫ 7.75

90 ФОНАРИ 14.5

15 КОСТЮМЫ В АССОРТИМЕНТЕ 10

6 ТЫКВЕННЫЕ КОНФЕТЫ 1.45

1234 ЦЕПОЧКА ДЛЯ КЛЮЧЕЙ 5.95

2345 ПОЛОЧКА ИЗ ДУБА 59.99

В данном случае не показаны строки для товаров с кодами из списка, указанного после NOT IN.

Ключевое слово NOT LIKE является отрицанием операции подстановки LIKE для нахождения значений, не похожих на заданное. Вот несколько примеров.

Пример___________________________________Значение __________________

WHERE SALARY NOT LIKE '200%' Любое значение, не начинающееся с 200

WHERE SALARY NOT LIKE '%200%' Любое значение, не имеющее 200 ни в какой

позиции

WHERE SALARY NOT LIKE '_00%' Любое значение, не имеющее 00 во второй и третьей позициях

WHERE SALARY NOT LIKE '2_%_%' Любое значение, не начинающееся с 2 и состоящее как минимум из трех символов

SELECT PROD_DESC FROM PRODUCTS_TBL WHERE PROD_DESC NOT LIKE 'П%';

PROD_ID PROD_DESC COST

11235 КОСТЮМ ВЕДЬМЫ 29.99

13 ИСКУССТВЕННЫЕ ПАРАФИНОВЫЕ ЗУБЫ 1.1

90 ФОНАРИ 14.5

15 КОСТЮМЫ В АССОРТИМЕНТЕ 10

9 СЛАДКАЯ КУКУРУЗА 1.35

6 ТЫКВЕННЫЕ КОНФЕТЫ 1.45

119 МАСКИ В АССОРТИМЕНТЕ 4.95

1234 ЦЕПОЧКА ДЛЯ КЛЮЧЕЙ 5.95

В этом примере выбираются описания товаров, не начинающиеся на букву "П".


Сейчас читают про: