Teradata-CASE and COALESCE
tässä luvussa selitetään Teradatan tapaus ja KOALITIOFUNKTIOT.
CASE Expression
CASE expression arvioi jokaisen rivin suhteessa ehtoon tai lausekkeeseen ja palauttaa ensimmäisen osuman tuloksen. Jos ei ole ottelut sitten tulos muualta osa palasi.
syntaksi
Seuraavassa on lausekkeen syntaksi.
CASE <expression> WHEN <expression> THEN result-1 WHEN <expression> THEN result-2 ELSE Result-n END
esimerkki
tarkastellaan seuraavaa Työntekijätaulukkoa.
Työllistynyt | Etunimi | Sukunimi | Liittynyt | DepartmentNo | Syntymäaika |
---|---|---|---|---|---|
101 | Mike | James | 3/27/2005 | 1 | 1/5/1980 |
102 | Robert | Williams | 4/25/2007 | 2 | 3/5/1983 |
103 | Pietari | Paavali | 3/21/2007 | 2 | 4/1/1983 |
104 | Alex | Stuart | 2/1/2008 | 2 | 11/6/1984 |
105 | Robert | James | 1/4/2008 | 3 | 12/1/1984 |
seuraava esimerkki arvioi DepartmentNo-sarakkeen ja palauttaa arvon 1, jos osaston numero on 1; palauttaa arvon 2, Jos osaston numero on 3; muussa tapauksessa se palauttaa arvon virheellisenä osastona.
SELECT EmployeeNo, CASE DepartmentNo WHEN 1 THEN 'Admin' WHEN 2 THEN 'IT' ELSE 'Invalid Dept' END AS Department FROM Employee;
kun Yllä oleva kysely suoritetaan, se tuottaa seuraavan tulosteen.
*** Query completed. 5 rows found. 2 columns returned. *** Total elapsed time was 1 second. EmployeeNo Department ----------- ------------ 101 Admin 104 IT 102 IT 105 Invalid Dept 103 IT
yllä oleva TAPAUSILMAISU voidaan kirjoittaa myös seuraavassa muodossa, joka tuottaa saman tuloksen kuin edellä.
SELECT EmployeeNo, CASE WHEN DepartmentNo = 1 THEN 'Admin' WHEN DepartmentNo = 2 THEN 'IT' ELSE 'Invalid Dept' END AS Department FROM Employee;
koalitio
koalitio on lauseke, joka palauttaa ilmaisun ensimmäisen ei-nollan arvon. Se palauttaa nollin, jos kaikki lausekkeen argumentit arvioidaan nolliksi. Seuraava on syntaksi.
syntaksi
COALESCE(expression 1, expression 2, ....)
esimerkki
SELECT EmployeeNo, COALESCE(dept_no, 'Department not found') FROM employee;
NULLIF
NULLIF lausuma palauttaa nollan, jos argumentit ovat yhtä suuret.
syntaksi
Seuraavassa on NULLIFIN lausekkeen syntaksi.
NULLIF(expression 1, expression 2)
esimerkki
seuraava esimerkki palauttaa nollan, jos departementti ei ole yhtä suuri kuin 3. Muuten se palauttaa Osastonei arvoa.
SELECT EmployeeNo, NULLIF(DepartmentNo,3) AS department FROM Employee;
yllä oleva kysely palauttaa seuraavat tietueet. Näet, että työntekijä 105 on osasto nro. nolla.
*** Query completed. 5 rows found. 2 columns returned. *** Total elapsed time was 1 second. EmployeeNo department ----------- ------------------ 101 1 104 2 102 2 105 ? 103 2