Teradata-CASE og COALESCE

reklamer

dette kapitel forklarer Teradata ‘ s CASE og COALESCE funktioner.

CASE udtryk

CASE udtryk evaluerer hver række mod en betingelse eller når klausul og returnerer resultatet af den første kamp. Hvis der ikke er nogen kampe, returneres resultatet fra ellers en del af.

syntaks

Følgende er syntaksen for SAGSUDTRYKKET.

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

eksempel

overvej følgende Medarbejdertabel.

Medarbejderenej Fornavn Efternavn Joineddato Afdelingnej Fødselsdato
101 Mike James 3/27/2005 1 1/5/1980
102 Robert Vilhelm 4/25/2007 2 3/5/1983
103 Peter Paul 3/21/2007 2 4/1/1983
104 Aleks Stuart 2/1/2008 2 11/6/1984
105 Robert James 1/4/2008 3 12/1/1984

følgende eksempel evaluerer Afdelingskolonnen og returnerer værdien af 1, hvis afdelingsnummeret er 1; returnerer 2, hvis afdelingsnummeret er 3; ellers returnerer det værdien som ugyldig afdeling.

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

når ovenstående forespørgsel udføres, producerer den følgende output.

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

ovenstående CASE udtryk kan også skrives i følgende form, som vil producere det 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 sætning, der returnerer den første ikke-null værdi af udtrykket. Det returnerer NULL, hvis alle argumenterne i udtrykket 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-erklæring returnerer NULL, hvis argumenterne er ens.

syntaks

Følgende er syntaksen for NULLIF-erklæringen.

NULLIF(expression 1, expression 2) 

eksempel

følgende eksempel returnerer NULL, hvis Afdelingennej er lig med 3. Ellers returnerer den Afdelingeningen værdi.

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

ovenstående forespørgsel returnerer følgende poster. Du kan se, at medarbejder 105 har afdeling 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
annoncer

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.