Teradata - operatory logiczne i warunkowe
Teradata obsługuje następujące operatory logiczne i warunkowe. Te operatory służą do porównywania i łączenia wielu warunków.
| Składnia | Znaczenie |
|---|---|
| > | Lepszy niż |
| < | Mniej niż |
| >= | Większe bądź równe |
| <= | Mniejszy lub równy |
| = | Równy |
| BETWEEN | Jeśli wartości mieszczą się w zakresie |
| IN | Jeśli wartości w <expression> |
| NOT IN | Jeśli wartości nie znajdują się w <wyrażeniu> |
| IS NULL | Jeśli wartość jest równa NULL |
| IS NOT NULL | Jeśli wartość NIE jest NULL |
| AND | Połącz wiele warunków. Zwraca wartość true tylko wtedy, gdy wszystkie warunki są spełnione |
| OR | Połącz wiele warunków. Zwraca wartość true tylko wtedy, gdy jeden z warunków jest spełniony. |
| NOT | Odwraca znaczenie warunku |
POMIĘDZY
Polecenie BETWEEN służy do sprawdzania, czy wartość mieści się w zakresie wartości.
Przykład
Rozważ poniższą tabelę pracowników.
| Pracownik numer | Imię | Nazwisko | JoinedDate | DepartmentNo | Data urodzenia |
|---|---|---|---|---|---|
| 101 | Mikrofon | James | 27.03.2005 | 1 | 05.01.1980 |
| 102 | Robert | Williams | 25.04.2007 | 2 | 05.03.1983 |
| 103 | Piotr | Paweł | 21.03.2007 | 2 | 01.04.1983 |
| 104 | Alex | Stuart | 01.02.2008 | 2 | 06.11.1984 |
| 105 | Robert | James | 1/4/2008 | 3 | 01.12.1984 |
Poniższy przykład pobiera rekordy z numerami pracowników z zakresu od 101,102 do 103.
SELECT EmployeeNo, FirstName FROM
Employee
WHERE EmployeeNo BETWEEN 101 AND 103;
Po wykonaniu powyższego zapytania zwraca rekordy pracowników z numerem pracownika od 101 do 103.
*** Query completed. 3 rows found. 2 columns returned.
*** Total elapsed time was 1 second.
EmployeeNo FirstName
----------- ------------------------------
101 Mike
102 Robert
103 Peter
W
Polecenie IN służy do sprawdzenia wartości z podaną listą wartości.
Przykład
Poniższy przykład pobiera rekordy z numerami pracowników 101, 102 i 103.
SELECT EmployeeNo, FirstName FROM
Employee
WHERE EmployeeNo in (101,102,103);
Powyższe zapytanie zwraca następujące rekordy.
*** Query completed. 3 rows found. 2 columns returned.
*** Total elapsed time was 1 second.
EmployeeNo FirstName
----------- ------------------------------
101 Mike
102 Robert
103 Peter
NIE W
Polecenie NOT IN odwraca wynik polecenia IN. Pobiera rekordy z wartościami, które nie pasują do podanej listy.
Przykład
Poniższy przykład pobiera rekordy z numerami pracowników spoza 101, 102 i 103.
SELECT * FROM
Employee
WHERE EmployeeNo not in (101,102,103);
Powyższe zapytanie zwraca następujące rekordy.
*** Query completed. 2 rows found. 6 columns returned.
*** Total elapsed time was 1 second.
EmployeeNo FirstName LastName
----------- ------------------------------ -----------------------------
104 Alex Stuart
105 Robert James