Teradata – CASE og COALESCE

Annonser

dette kapitlet forklarer CASE og COALESCE funksjoner Av Teradata.

CASE Uttrykk

CASE uttrykk evaluerer hver rad mot en betingelse ELLER NÅR setningsdelen og returnerer resultatet av den første kampen. Hvis det ikke er noen treff da resultatet FRA ANDRE del av returnert.

Syntaks

Følgende er syntaksen TIL SAKSUTTRYKKET.

CASE <expression> WHEN <expression> THEN result-1 WHEN <expression> THEN result-2 ELSE Result-n END

Eksempel

Vurder Følgende Ansatttabell.

Ansattingen Fornavn Etternavn Sluttet Dato Avdelingno Fødselsdato
101 Mike James 3/27/2005 1 1/5/1980
102 Robert Williams 4/25/2007 2 3/5/1983
103 Peter Paul 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

følgende eksempel evaluerer Kolonnen Avdelingno og returnerer verdien av 1 hvis avdelingsnummeret er 1; returnerer 2 hvis avdelingsnummeret er 3; ellers returnerer verdien som ugyldig avdeling.

SELECT EmployeeNo, CASE DepartmentNo WHEN 1 THEN 'Admin' WHEN 2 THEN 'IT' ELSE 'Invalid Dept' END AS Department FROM Employee; 

når spørringen ovenfor utføres, produserer den følgende utdata.

*** 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

SAKSUTTRYKKET ovenfor kan også skrives i følgende form som vil gi samme resultat som ovenfor.

SELECT EmployeeNo, CASE WHEN DepartmentNo = 1 THEN 'Admin' WHEN DepartmentNo = 2 THEN 'IT' ELSE 'Invalid Dept' END AS Department FROM Employee;

COALESCE

COALESCE er en setning som returnerer den første ikke-null-verdien av uttrykket. DEN returnerer NULL hvis alle argumentene i uttrykket evalueres TIL NULL. Følgende er syntaksen.

Syntaks

COALESCE(expression 1, expression 2, ....) 

Eksempel

SELECT EmployeeNo, COALESCE(dept_no, 'Department not found') FROM employee;

NULLIF

nullif-setning returnerer NULL HVIS argumentene er like.

Syntaks

Følgende er syntaksen TIL nullif-setningen.

NULLIF(expression 1, expression 2) 

Eksempel

følgende eksempel returnerer NULL hvis Avdelingenno er lik 3. Ellers returnerer Den Avdelingeningen verdi.

SELECT EmployeeNo, NULLIF(DepartmentNo,3) AS department FROM Employee;

spørringen ovenfor returnerer følgende poster. Du kan se at ansatt 105 har avdeling nr. som NULL.

*** 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
Annonser

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.