Teradata поддерживает следующие логические и условные операторы. Эти операторы используются для сравнения и объединения нескольких условий.
| Синтаксис | Имея в виду |
|---|---|
| > | Лучше чем |
| < | Меньше, чем |
| > = | Больше или равно |
| <= | Меньше или равно |
| знак равно | Равно |
| МЕЖДУ | Если значения в пределах диапазона |
| В | Если значения в <выражение> |
| НЕ В | Если значения не в <выражение> |
| НУЛЕВОЙ | Если значение равно NULL |
| НЕ НУЛЬ | Если значение НЕ NULL |
| А ТАКЖЕ | Объединить несколько условий. Оценивается как истинное, только если выполнены все условия |
| ИЛИ ЖЕ | Объедините несколько условий. Оценивается как истинное, только если выполняется одно из условий. |
| НЕ | Меняет смысл условия |
МЕЖДУ
Команда BETWEEN используется для проверки, находится ли значение в диапазоне значений.
пример
Рассмотрим следующую таблицу сотрудников.
| Сотрудник № | Имя | Фамилия | JoinedDate | DepartmentNo | Дата рождения |
|---|---|---|---|---|---|
| 101 | Майк | Джеймс | 3/27/2005 | 1 | 1/5/1980 |
| 102 | Роберт | Williams | 4/25/2007 | 2 | 3/5/1983 |
| 103 | Питер | Павел | 3/21/2007 | 2 | 4/1/1983 |
| 104 | Alex | Стюарт | 2/1/2008 | 2 | 11/6/1984 |
| 105 | Роберт | Джеймс | 1/4/2008 | 3 | 12/1/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);
Приведенный выше запрос возвращает следующие записи.