Терадата - логические и условные операторы

Teradata поддерживает следующие логические и условные операторы. Эти операторы используются для сравнения и объединения нескольких условий.

Синтаксис Имея в виду
> Лучше чем
< Меньше, чем
>= Больше или равно
<= Меньше или равно
= Равно
BETWEEN Если значения в пределах диапазона
IN Если значения в <выражение>
NOT IN Если значения не в <выражение>
IS NULL Если значение NULL
IS NOT NULL Если значение НЕ NULL
AND Объедините несколько условий. Возвращается как истина, только если выполнены все условия
OR Объедините несколько условий. Возвращает значение true, только если выполняется одно из условий.
NOT Изменяет смысл условия

МЕЖДУ

Команда BETWEEN используется для проверки того, находится ли значение в пределах диапазона значений.

пример

Рассмотрим следующую таблицу сотрудников.

Работник № Имя Фамилия Дата присоединения Отдел Нет День рождения
101 Майк Джеймс 27.03.2005 1 05.01.1980
102 Роберт Уильямс 25.04.2007 2 05.03.1983
103 Питер Павел 21.03.2007 2 01.04.1983
104 Alex Стюарт 01.02.2008 2 06.11.1984
105 Роберт Джеймс 04.01.2008 3 01.12.1984

В следующем примере выполняется выборка записей с номерами сотрудников в диапазоне от 101,102 до 103.

SELECT EmployeeNo, FirstName FROM  
Employee 
WHERE EmployeeNo BETWEEN 101 AND 103;

При выполнении вышеуказанного запроса он возвращает записи о сотрудниках с номерами сотрудников от 101 до 103.

*** Query completed. 3 rows found. 2 columns returned. 
*** Total elapsed time was 1 second. 
 EmployeeNo            FirstName 
-----------  ------------------------------ 
   101                   Mike 
   102                   Robert 
   103                   Peter

В

Команда IN используется для проверки значения по заданному списку значений.

пример

В следующем примере выполняется выборка записей с номерами сотрудников в 101, 102 и 103.

SELECT EmployeeNo, FirstName FROM  
Employee 
WHERE EmployeeNo in (101,102,103);

Приведенный выше запрос возвращает следующие записи.

*** Query completed. 3 rows found. 2 columns returned. 
*** Total elapsed time was 1 second.  
 EmployeeNo            FirstName 
-----------  ------------------------------ 
   101                   Mike 
   102                   Robert 
   103                   Peter

НЕ В

Команда NOT IN изменяет результат команды IN. Он выбирает записи со значениями, не соответствующими заданному списку.

пример

В следующем примере извлекаются записи с номерами сотрудников, которых нет в 101, 102 и 103.

SELECT * FROM  
Employee 
WHERE EmployeeNo not in (101,102,103);

Приведенный выше запрос возвращает следующие записи.

*** Query completed. 2 rows found. 6 columns returned. 
*** Total elapsed time was 1 second. 
 EmployeeNo          FirstName                      LastName 
----------- ------------------------------ -----------------------------    
    104                Alex                          Stuart 
    105                Robert                        James