SAP Funções SQL do HANA: Tipos e exemplos
⚡ Resumo Inteligente
SAP As funções SQL do HANA transformam valores dentro de uma consulta sem mover os dados para a camada de aplicação. Sete categorias abrangem conversão de tipo de dados, data e hora, texto completo, número, string, janela e operações diversas.

SAP Funções SQL do HANA
SAP O HANA fornece o seguinte SAP Funções HANA-
- Função de conversão de tipo de dados – A função de conversão de tipo de dados é usada para converter um tipo de dados em outro. Abaixo está uma lista de funções de conversão de tipo de dados - por exemplo, CAST, TO_ALPHANUM, TO_BIGINT, TO_BINARY etc.
- Funções de data e hora – As funções de data e hora são usadas para converter data/hora em um formato diferente. Por exemplo: ADICIONAR_DIAS, ADICIONAR_MESES, ADICIONAR_SEGUNDOS, etc.
- Funções de texto completo – A função Fulltext Functions é usada para pesquisa de texto. Exemplo: SCORE etc.
- Funções numéricas – As funções numéricas recebem um valor numérico ou uma sequência de caracteres numéricos como entrada e retornam valores numéricos. Exemplos: ABS, ROUND, POWER, etc.
- Funções de string – As funções de string recebem uma string como entrada, processam-na e retornam um valor de acordo com a função. Por exemplo: (ASCII, CHAR, CONCAT, etc.)
- Funções da janela – As funções de janela permitem ao usuário dividir o conjunto de resultados de uma consulta em grupos de linhas chamados partições de janela. Por exemplo, RANK(), DENSE_RANK(), ROW_NUMBER(), etc.
- Função Diversas- Existem mais algumas funções, que são usadas para trabalhos diversos. Por exemplo – CONVERT_CURRENCY, CURRENT_SCHEMA, etc.
Cada função acima é avaliada dentro do mecanismo do banco de dados, razão pela qual inserir a lógica em uma função é quase sempre mais rápido do que buscar linhas e processá-las em um aplicativo. Os exemplos abaixo usam a tabela DUMMY, uma tabela de sistema com uma única linha que existe exclusivamente para que uma expressão possa ser testada sem acessar dados reais.
Funções escalares, agregadas e de janela
Antes dos exemplos, é importante definir como uma função se comporta em uma consulta: quantas linhas são inseridas e quantas são retornadas.
| Categoria | Linhas de entrada: linhas de saída | Precisa de um comando GROUP BY? | Exemplos |
|---|---|---|---|
| Escalar | Uma fileira para uma fileira | Não | MAIÚSCULAS, REDONDAS, ATÉ_A_DATA, FUNDIDAS |
| Agregado | Muitas linhas em uma única linha | Sim, a menos que o conjunto inteiro seja um único grupo. | SOMA, AVG, CONTAGEM, MÍNIMO, MÁXIMO |
| Janela | Muitas linhas para muitas linhas | Não, usa OVER em vez de OVER. | RANK, CLASSIFICAÇÃO_DENSA, NÚMERO_DA_LINHA, ATRASO |
| mesa | Retorna um conjunto de resultados | Usado na cláusula FROM | DATA_DE_GERAÇÃO_DA_SÉRIE |
A consequência prática é que uma função agregada oculta detalhes, enquanto uma função de janela os preserva. Solicitar o valor de cada funcionário juntamente com a média do seu departamento exige uma função de janela, pois um GROUP BY removeria as linhas individuais por completo.
comum SAP Funções HANA com exemplos
As instruções abaixo podem ser coladas diretamente no console SQL. Cada uma demonstra uma categoria da lista acima.
1) Funções de string. Essas funções recebem caracteres como entrada e retornam um valor derivado.
SELECT UPPER('sap hana') AS UPPER_TEXT, LENGTH('SAP HANA') AS TEXT_LENGTH, CONCAT('SAP ', 'HANA') AS JOINED, SUBSTRING('SAP HANA', 5, 4) AS PART, REPLACE('SAP HANA', 'HANA', 'S/4') AS SWAPPED, TRIM(' padded ') AS CLEANED FROM DUMMY;
2) Funções numéricas. Vale a pena testar o comportamento de arredondamento, pois ROUND usa arredondamento comercial, enquanto FLOOR e CEIL sempre se movem em uma direção.
SELECT ABS(-45.7) AS ABSOLUTE_VALUE, ROUND(123.4567, 2) AS ROUNDED, FLOOR(9.9) AS ROUNDED_DOWN, CEIL(9.1) AS ROUNDED_UP, POWER(2, 10) AS RAISED, MOD(17, 5) AS REMAINDER FROM DUMMY;
3) Funções de data e hora. Esses são os mais frequentemente necessários para relatórios periódicos.
SELECT CURRENT_DATE AS TODAY, ADD_DAYS(CURRENT_DATE, 30) AS IN_30_DAYS, ADD_MONTHS(CURRENT_DATE, -1) AS LAST_MONTH, DAYS_BETWEEN('2026-01-01', CURRENT_DATE) AS ELAPSED, LAST_DAY(CURRENT_DATE) AS MONTH_END, WEEKDAY(CURRENT_DATE) AS DAY_INDEX FROM DUMMY;
4) Funções de conversão. A conversão explícita impede a coerção silenciosa de tipos que torna uma cláusula WHERE mais lenta.
SELECT CAST('1234' AS INTEGER) AS AS_NUMBER, TO_VARCHAR(CURRENT_DATE, 'DD.MM.YYYY') AS AS_TEXT, TO_DECIMAL(1234.5678, 10, 2) AS AS_DECIMAL FROM DUMMY;
O comportamento dos tipos e os limites de cada tipo de alvo são abordados em SAP tipos de dados HANA.
Explicação das funções de janela
Uma função de janela realiza um cálculo em um conjunto de linhas relacionadas à linha atual, sem agrupá-las. A cláusula OVER define esse conjunto e possui duas partes opcionais: PARTITION BY divide os dados em grupos e ORDER BY fixa a sequência dentro de cada grupo.
SELECT DEPARTMENT, EMP_NAME, SALARY, ROW_NUMBER() OVER (PARTITION BY DEPARTMENT ORDER BY SALARY DESC) AS ROW_NUM, RANK() OVER (PARTITION BY DEPARTMENT ORDER BY SALARY DESC) AS RANKING, DENSE_RANK() OVER (PARTITION BY DEPARTMENT ORDER BY SALARY DESC) AS DENSE_RANKING, SUM(SALARY) OVER (PARTITION BY DEPARTMENT) AS DEPT_TOTAL FROM DHK_SCHEMA.EMPLOYEE;
As três funções de classificação diferem apenas quando os valores são iguais:
- ROW_NUMBER Nunca há empates. Dois salários idênticos ainda recebem 1 e 2, escolhidos arbitrariamente.
- RANK Atribui o mesmo número às linhas empatadas e, em seguida, pula. Duas linhas com 1 são seguidas por 3.
- DENSE_RANK As linhas empatadas recebem o mesmo número e não são puladas. Duas linhas com número 1 são seguidas por linhas com número 2.
Use ROW_NUMBER para remover duplicados, RANK para classificação em estilo de competição e DENSE_RANK quando a sequência precisar permanecer ininterrupta. Os símbolos de comparação e lógicos usados com essas funções são abordados em [referência]. SAP Operadores HANAe estrutura de declaração em SAP SQL HANA.
