SAP Funciones SQL de HANA: Tipos y ejemplos
โก Resumen inteligente
SAP Las funciones SQL de HANA transforman valores dentro de una consulta sin transferir los datos a la capa de aplicaciรณn. Siete categorรญas abarcan la conversiรณn de tipos de datos, fechas y horas, bรบsqueda de texto completo, nรบmeros, cadenas, ventanas y operaciones diversas.

SAP Funciones SQL de HANA
SAP HANA ofrece lo siguiente: SAP Funciones de HANA
- Funciรณn de conversiรณn de tipo de datos โ La funciรณn de conversiรณn de tipo de datos se utiliza para convertir un tipo de datos a otro. A continuaciรณn se muestra una lista de la funciรณn de conversiรณn de tipos de datos, p. CAST, TO_ALPHANUM, TO_BIGINT, TO_BINARY, etc.
- Funciones de fecha y hora โ Las funciones de fecha y hora se utilizan para convertir fechas y horas a diferentes formatos. Por ejemplo: ADD_DAYS, ADD_MONTHS, ADD_SECOND, etc.
- Funciones de texto completo โ La funciรณn de texto completo se utiliza para la bรบsqueda de texto. Por ejemplo: SCORE, etc.
- Funciones numรฉricas โ Las funciones numรฉricas toman como entrada un valor numรฉrico o una cadena con caracteres numรฉricos y devuelven valores numรฉricos. Por ejemplo: ABS, REDONDEAR, POTENCIA, etc.
- Funciones de cadena โ Las funciones de cadena toman una cadena como entrada, la procesan y devuelven un valor segรบn la funciรณn. Por ejemplo: (ASCII, CHAR, CONCAT, etc.).
- Funciones de ventana โ Las funciones de ventana permiten al usuario dividir el conjunto de resultados de una consulta en grupos de filas denominados particiones de ventana. Por ejemplo: RANK(), DENSE_RANK(), ROW_NUMBER(), etc.
- Funciรณn Miscelรกnea- Existen algunas funciones mรกs que se utilizan para tareas diversas, como por ejemplo: CONVERT_CURRENCY, CURRENT_SCHEMA, etc.
Cada funciรณn anterior se evalรบa dentro del motor de la base de datos, por lo que insertar lรณgica en una funciรณn es casi siempre mรกs rรกpido que recuperar filas y procesarlas en una aplicaciรณn. Los ejemplos siguientes utilizan la tabla DUMMY, una tabla del sistema de una sola fila que existe รบnicamente para probar una expresiรณn sin acceder a datos reales.
Funciones escalares, agregadas y de ventana
Antes de los ejemplos, cabe destacar una distinciรณn que determina cรณmo se comporta una funciรณn en una consulta: cuรกntas filas se introducen y cuรกntas se obtienen como resultado.
| Categorรญa | Filas de entrada: filas de salida | ยฟNecesita AGRUPAR POR? | Ejemplos |
|---|---|---|---|
| Escalar | Una fila a una fila | No | MAYรSCULAS, REDONDAS, HASTA_LA_FECHA, CAST |
| Agregados | Muchas filas en una sola fila | Sรญ, a menos que todo el conjunto sea un solo grupo. | SUMA, AVG, CONTEO, MรNIMO, MรXIMO |
| Ventana | Muchas filas a muchas filas | No, utiliza OVER en su lugar. | RANGO, RANGO_DENSO, NรMERO_DE_FILA, RETRASO |
| Tabla | Devuelve un conjunto de resultados | Utilizado en la clรกusula FROM | FECHA_DE_GENERACIรN_DE_LA_SERIE |
La consecuencia prรกctica es que una agregaciรณn reduce los detalles, mientras que una funciรณn de ventana los conserva. Para consultar a cada empleado junto con el promedio de su departamento, se necesita una funciรณn de ventana, ya que una agrupaciรณn eliminarรญa por completo las filas individuales.
Preguntas frecuentes sobre bancarrota SAP Funciones de HANA con ejemplos
Las siguientes instrucciones se pueden pegar directamente en la consola SQL. Cada una ilustra una categorรญa de la lista anterior.
1) Funciones de cadena. Estas funciones toman como entrada un carรกcter y devuelven un 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) Funciones numรฉricas. Vale la pena probar el comportamiento de redondeo, ya que ROUND utiliza un redondeo comercial, mientras que FLOOR y CEIL siempre se mueven en una direcciรณn.
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) Funciones de fecha y hora. Estos son los que se necesitan con mayor frecuencia para la elaboraciรณn de informes 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) Funciones de conversiรณn. La conversiรณn explรญcita evita la coerciรณn de tipos silenciosa que ralentiza una clรกusula WHERE.
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;
El comportamiento de los tipos y los lรญmites de cada tipo objetivo se tratan en SAP Tipos de datos de HANA.
Explicaciรณn de las funciones de ventana
Una funciรณn de ventana realiza un cรกlculo sobre un conjunto de filas relacionadas con la fila actual, sin agruparlas. La clรกusula OVER define dicho conjunto y tiene dos partes opcionales: PARTITION BY divide los datos en grupos y ORDER BY fija el orden 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;
Las tres funciones de clasificaciรณn solo difieren cuando los valores empatan:
- NUMERO DE FILA Nunca hay empate. Dos salarios idรฉnticos siguen recibiendo 1 y 2, elegidos arbitrariamente.
- RANK A las filas empatadas se les asigna el mismo nรบmero y luego se saltan una. Dos filas en el nรบmero 1 van seguidas de 3.
- RANGO_DENSO A las filas empatadas se les asigna el mismo nรบmero y no se saltan ninguna. Dos filas en el nรบmero 1 van seguidas de dos en el nรบmero 2.
Utilice ROW_NUMBER para eliminar duplicados, RANK para la clasificaciรณn al estilo de competiciรณn y DENSE_RANK cuando la secuencia deba permanecer ininterrumpida. Los sรญmbolos de comparaciรณn y lรณgicos utilizados junto con estas funciones se tratan en SAP Operadores de HANAy la estructura de la declaraciรณn en SAP HANA-SQL.
