Teradata – CASE y COALESCE

Anuncios

Este capítulo explica el CASO y las funciones de FUSIÓN de Teradata.

Expresión de mayúsculas y minúsculas

La expresión de mayúsculas y minúsculas evalúa cada fila contra una condición o cláusula WHEN y devuelve el resultado de la primera coincidencia. Si no hay coincidencias, se devuelve el resultado de la parte ELSE.

Sintaxis

A continuación se muestra la sintaxis de la expresión CASE.

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

Ejemplo

Considere la siguiente tabla de empleados.

EmployeeNo Nombre Apellido JoinedDate DepartmentNo Fecha De Nacimiento
101 Mike James 3/27/2005 1 1/5/1980
102 Robert Williams 4/25/2007 2 3/5/1983
103 Pedro Pablo 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

El siguiente ejemplo evalúa la columna DepartmentNo y devuelve el valor de 1 si el número de departamento es 1; devuelve 2 si el número de departamento es 3; de lo contrario, devuelve el valor como departamento no válido.

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

Cuando se ejecuta la consulta anterior, produce la siguiente salida.

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

La expresión de mayúsculas y minúsculas anterior también se puede escribir de la siguiente forma, lo que producirá el mismo resultado que el anterior.

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

COALESCE

COALESCE es una sentencia que devuelve el primer valor no nulo de la expresión. Devuelve NULL si todos los argumentos de la expresión se evalúan como NULL. A continuación se muestra la sintaxis.

Sintaxis

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

Ejemplo

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

NULLIF

La instrucción NULLIF devuelve NULL si los argumentos son iguales.

Sintaxis

A continuación se muestra la sintaxis de la instrucción NULLIF.

NULLIF(expression 1, expression 2) 

Ejemplo

El siguiente ejemplo devuelve NULL si el DepartmentNo es igual a 3. De lo contrario, devuelve el valor DepartmentNo.

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

La consulta anterior devuelve los siguientes registros. Puedes ver que el empleado 105 tiene el departamento no. como 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
Anuncios

Deja una respuesta

Tu dirección de correo electrónico no será publicada.