Teradata – CASE og COALESCE
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