SAP HANA - Expressões SQL
Uma expressão é usada para avaliar uma cláusula para retornar valores. Existem diferentes expressões SQL que podem ser usadas no HANA -
- Expressões de caso
- Expressões de função
- Expressões agregadas
- Subconsultas em Expressões
Expressão de Caso
Isso é usado para passar várias condições em uma expressão SQL. Ele permite o uso da lógica IF-ELSE-THEN sem usar procedimentos em instruções SQL.
Exemplo
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 instrução retornará contagem1, contagem2, contagem3 com valor inteiro de acordo com a condição passada.
Expressões de função
Expressões de função envolvem funções embutidas de SQL a serem usadas em Expressões.
Expressões agregadas
As funções de agregação são usadas para realizar cálculos complexos, como soma, porcentagem, mínimo, máximo, contagem, modo, mediana, etc. A expressão de agregação usa funções de agregação para calcular o valor único de vários valores.
Aggregate Functions- Soma, contagem, mínimo, máximo. Eles são aplicados em valores de medida (fatos) e estão sempre associados a uma dimensão.
As funções de agregação comuns incluem -
- Média ()
- Contar ()
- Máximo ()
- Mediana ()
- Mínimo ()
- Modo ()
- Soma ()
Subconsultas em Expressões
Uma subconsulta como uma expressão é uma instrução Select. Quando usado em uma expressão, retorna zero ou um único valor.
Uma subconsulta é usada para retornar dados que serão usados na consulta principal como uma condição para restringir ainda mais os dados a serem recuperados.
As subconsultas podem ser usadas com as instruções SELECT, INSERT, UPDATE e DELETE junto com os operadores como =, <,>,> =, <=, IN, BETWEEN etc.
Existem algumas regras que as subconsultas devem seguir -
As subconsultas devem ser colocadas entre parênteses.
Uma subconsulta pode ter apenas uma coluna na cláusula SELECT, a menos que várias colunas estejam na consulta principal da subconsulta para comparar suas colunas selecionadas.
Um ORDER BY não pode ser usado em uma subconsulta, embora a consulta principal possa usar um ORDER BY. O GROUP BY pode ser usado para executar a mesma função que o ORDER BY em uma subconsulta.
As subconsultas que retornam mais de uma linha só podem ser usadas com vários operadores de valor, como o operador IN.
A lista SELECT não pode incluir nenhuma referência a valores que avaliam para um BLOB, ARRAY, CLOB ou NCLOB.
Uma subconsulta não pode ser imediatamente incluída em uma função definida.
O operador BETWEEN não pode ser usado com uma subconsulta; no entanto, o operador BETWEEN pode ser usado na subconsulta.
Subconsultas com a instrução SELECT
As subconsultas são usadas com mais freqüência com a instrução SELECT. A sintaxe básica é a seguinte -
Exemplo
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 |
+----+----------+-----+---------+----------+