SAP HANA - Expresiones SQL
Una expresión se usa para evaluar una cláusula para devolver valores. Hay diferentes expresiones SQL que se pueden usar en HANA:
- Expresiones de caso
- Expresiones de funciones
- Expresiones agregadas
- Subconsultas en Expresiones
Expresión de caso
Se utiliza para pasar varias condiciones en una expresión SQL. Permite el uso de lógica IF-ELSE-THEN sin utilizar procedimientos en sentencias SQL.
Ejemplo
SELECT COUNT( CASE WHEN sal < 2000 THEN 1 ELSE NULL END ) count1,
COUNT( CASE WHEN sal BETWEEN 2001 AND 4000 THEN 1 ELSE NULL END ) count2,
COUNT( CASE WHEN sal > 4000 THEN 1 ELSE NULL END ) count3 FROM emp;
Esta declaración devolverá count1, count2, count3 con un valor entero según la condición pasada.
Expresiones de funciones
Las expresiones de función involucran funciones incorporadas de SQL para ser utilizadas en Expresiones.
Expresiones agregadas
Las funciones agregadas se utilizan para realizar cálculos complejos como suma, porcentaje, mínimo, máximo, recuento, modo, mediana, etc. Expresión agregada utiliza funciones agregadas para calcular un valor único a partir de varios valores.
Aggregate Functions- Suma, Cuenta, Mínimo, Máximo. Estos se aplican a valores de medida (hechos) y siempre están asociados a una dimensión.
Las funciones agregadas comunes incluyen:
- Promedio ()
- Contar ()
- Máximo ()
- Mediana ()
- Mínimo ()
- Modo ()
- Suma ()
Subconsultas en Expresiones
Una subconsulta como expresión es una instrucción Select. Cuando se usa en una expresión, devuelve un valor único o cero.
Una subconsulta se utiliza para devolver datos que se utilizarán en la consulta principal como condición para restringir aún más los datos que se recuperarán.
Las subconsultas se pueden usar con las declaraciones SELECT, INSERT, UPDATE y DELETE junto con los operadores como =, <,>,> =, <=, IN, BETWEEN, etc.
Hay algunas reglas que las subconsultas deben seguir:
Las subconsultas deben ir entre paréntesis.
Una subconsulta solo puede tener una columna en la cláusula SELECT, a menos que haya varias columnas en la consulta principal para que la subconsulta compare sus columnas seleccionadas.
Un ORDER BY no se puede usar en una subconsulta, aunque la consulta principal puede usar un ORDER BY. GROUP BY se puede usar para realizar la misma función que ORDER BY en una subconsulta.
Las subconsultas que devuelven más de una fila solo se pueden usar con varios operadores de valor, como el operador IN.
La lista SELECT no puede incluir referencias a valores que se evalúen como BLOB, ARRAY, CLOB o NCLOB.
Una subconsulta no puede incluirse inmediatamente en una función establecida.
El operador BETWEEN no se puede utilizar con una subconsulta; sin embargo, el operador BETWEEN se puede utilizar dentro de la subconsulta.
Subconsultas con la instrucción SELECT
Las subconsultas se utilizan con mayor frecuencia con la instrucción SELECT. La sintaxis básica es la siguiente:
Ejemplo
SELECT * FROM CUSTOMERS
WHERE ID IN (SELECT ID
FROM CUSTOMERS
WHERE SALARY > 4500) ;
+----+----------+-----+---------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+---------+----------+
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+---------+----------+