Teradata-CASE and COALESCE

advertises

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
mainokset

Vastaa

Sähköpostiosoitettasi ei julkaista.