Funciones anidadas
Las funciones escalares y de totales se pueden anidar de varias formas.
Puede anidar funciones de las siguientes formas:
- Ejemplo: Funciones escalares dentro de funciones escalares
- Suponga
que desea conocer el mes y día de contratación de un empleado concreto del
departamento D11. Suponga que también desea obtener el resultado en formato de
EE.UU. (mm/dd/aaaa). Utilice esta consulta:
SELECT SUBSTR((CHAR(HIREDATE, USA)),1,5) FROM EMP WHERE LASTNAME = 'BROWN' AND DEPT = 'D11';La tabla de resultados es similar a la siguiente:
===== 03/03 - Ejemplo: Funciones escalares dentro de funciones de totales
- En algunos casos,
puede que sea necesario invocar una función escalar desde una función de
totales. Suponga que desea conocer el
número medio de años de empleo para los empleados del departamento A00. Utilice esta consulta:
SELECT AVG(DECIMAL(YEAR(CURRENT DATE - HIREDATE))) FROM EMP WHERE DEPT = 'A00';La tabla de resultados es similar a la siguiente:
======= 20.6666La forma real del resultado, 20.6666, depende de cómo se defina la variable de lenguaje principal a la que se asigna el resultado.
- Ejemplo: Funciones de totales dentro de funciones escalares
- Suponga
que desea conocer el año en que se contrató el último empleado del departamento
E21. Utilice esta consulta:
SELECT YEAR(MAX(HIREDATE)) FROM EMP WHERE DEPT = 'E21';La tabla de resultados es similar a la siguiente:
==== 2002