As funções incorporadas no DB2 são disponibilizadas pelo próprio gerenciador de banco de dados e se dividem em três tipos principais:
-
Funções Agregadas: operam sobre um conjunto de linhas e retornam um único valor.
-
Funções Escalares: operam sobre uma única linha e retornam um único valor.
-
Funções de Tabela: retornam uma tabela de resultados.
Abaixo estão listadas e classificadas as funções mais relevantes, organizadas por categorias.
✨ Funções Agregadas
-
AVG: média dos valores. -
SUM: soma total dos valores. -
MIN/MAX: menor / maior valor. -
COUNT: quantidade de linhas. -
MEDIAN,STDDEV,VARIANCE: estatísticas diversas. -
LISTAGG: concatena strings com separador. -
GROUPING: indica linhas de subtotal em ROLLUP e CUBE.
▣ Funções Escalares
Conversão de Tipos
-
CAST,INT,DECIMAL,CHAR,VARCHAR,DATE,TIMESTAMP, etc. -
TO_DATE,TO_CHAR,TO_NUMBER, etc.
Datas e Horas
-
CURRENT DATE,CURRENT TIME,CURRENT TIMESTAMP -
DAY,MONTH,YEAR,HOUR,MINUTE,SECOND -
DAYS_BETWEEN,MONTHS_BETWEEN,ADD_DAYS,LAST_DAY,ROUND_TIMESTAMP, etc.
Numéricas
-
ABS,CEIL,FLOOR,ROUND,MOD,SQRT,POWER,LOG10, etc.
Strings
-
LENGTH,SUBSTRING,TRIM,UPPER,LOWER,REPLACE,CONCAT,POSITION,INSTR, etc. -
REGEXP_LIKE,REGEXP_REPLACE,REGEXP_COUNT, etc.
Diversas
-
COALESCE,NULLIF,NVL,VALUE,GREATEST,LEAST, etc.
📊 Funções de Agrupamento Avançado
-
ROLLUP: cria subtotais hierárquicos. -
CUBE: cria tabulações cruzadas completas. -
GROUPING SETS: combina agrupamentos personalizados.
🔗 Funções de Regressão
-
REGR_AVGX,REGR_AVGY,REGR_COUNT,REGR_SLOPE,REGR_INTERCEPT,REGR_R2, etc.
🔄 Funções de Expressão Regular
-
REGEXP_LIKE,REGEXP_REPLACE,REGEXP_SUBSTR,REGEXP_COUNT, etc.
🔢 Funções de Matriz
-
ARRAY_AGG,UNNEST,CARDINALITY,ARRAY_DELETE, etc.
📂 Funções de Tabela
-
UNNEST: converte arrays em linhas. -
XMLTABLE: converte XML em tabela. -
BASE_TABLE: resolve nome de tabela.
👾 Funções XML
-
XMLAGG,XMLCONCAT,XMLELEMENT,XMLQUERY,XMLTABLE, etc.
⚡ Exemplo Prático
SELECT DEPTNO,
AVG(SALARY) AS MEDIA_SALARIO,
MAX(SALARY) AS SALARIO_MAX,
MIN(SALARY) AS SALARIO_MIN,
COUNT(*) AS TOTAL_FUNC
FROM FUNCIONARIOS
GROUP BY DEPTNO
ORDER BY DEPTNO;
📅 Exemplo com Datas
SELECT EMPNOME,
CURRENT_DATE AS HOJE,
EMPADMI,
DAYS_BETWEEN(CURRENT_DATE, EMPADMI) AS DIAS_TRABALHADOS
FROM EMP
WHERE EMPADMI IS NOT NULL;
✅ Conclusão
As funções integradas do DB2 são poderosas e versáteis, permitindo desde operações simples até consultas complexas. Dominar essas funções é essencial para consultas eficientes e expressivas no banco de dados.