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 |
+----+----------+-----+---------+----------+