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