Выражение используется для оценки предложения для возврата значений. В HANA могут использоваться различные выражения SQL:
- Case выражения
- Функциональные выражения
- Совокупные выражения
- Подзапросы в выражениях
Выражение регистра
Это используется для передачи нескольких условий в выражении SQL. Это позволяет использовать логику IF-ELSE-THEN без использования процедур в инструкциях SQL.
пример
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;
Этот оператор возвратит count1, count2, count3 с целочисленным значением в соответствии с переданным условием.
Функциональные выражения
Выражения функций включают встроенные функции SQL, которые будут использоваться в выражениях.
Совокупные выражения
Агрегатные функции используются для выполнения сложных вычислений, таких как Сумма, Процент, Мин, Макс, Счет, Режим, Медиана и т. Д. Агрегатное выражение использует агрегирующие функции для вычисления одного значения из нескольких значений.
Агрегатные функции — сумма, количество, минимум, максимум. Они применяются к значениям меры (фактам) и всегда связаны с измерением.
Общие агрегатные функции включают в себя —
- Средний ()
- Count ()
- Максимум ()
- Медиана ()
- Минимум ()
- Режим ()
- Сумма ()
Подзапросы в выражениях
Подзапрос как выражение является оператором Select. Когда он используется в выражении, он возвращает ноль или одно значение.
Подзапрос используется для возврата данных, которые будут использоваться в основном запросе в качестве условия для дальнейшего ограничения данных, подлежащих извлечению.
Подзапросы могут использоваться с операторами SELECT, INSERT, UPDATE и DELETE вместе с такими операторами, как =, <,>,> =, <=, IN, BETWEEN и т. Д.
Есть несколько правил, которым должны следовать подзапросы —
-
Подзапросы должны быть заключены в круглые скобки.
-
У подзапроса может быть только один столбец в предложении SELECT, если в основном запросе нет нескольких столбцов для подзапроса для сравнения его выбранных столбцов.
-
ORDER BY нельзя использовать в подзапросе, хотя основной запрос может использовать ORDER BY. GROUP BY может использоваться для выполнения той же функции, что и ORDER BY в подзапросе.
-
Подзапросы, которые возвращают более одной строки, могут использоваться только с несколькими операторами значений, такими как оператор IN.
-
Список SELECT не может содержать ссылки на значения, которые оцениваются как BLOB, ARRAY, CLOB или NCLOB.
-
Подзапрос не может быть сразу заключен в функцию набора.
-
Оператор BETWEEN нельзя использовать с подзапросом; тем не менее, оператор BETWEEN может использоваться внутри подзапроса.
Подзапросы должны быть заключены в круглые скобки.
У подзапроса может быть только один столбец в предложении SELECT, если в основном запросе нет нескольких столбцов для подзапроса для сравнения его выбранных столбцов.
ORDER BY нельзя использовать в подзапросе, хотя основной запрос может использовать ORDER BY. GROUP BY может использоваться для выполнения той же функции, что и ORDER BY в подзапросе.
Подзапросы, которые возвращают более одной строки, могут использоваться только с несколькими операторами значений, такими как оператор IN.
Список SELECT не может содержать ссылки на значения, которые оцениваются как BLOB, ARRAY, CLOB или NCLOB.
Подзапрос не может быть сразу заключен в функцию набора.
Оператор BETWEEN нельзя использовать с подзапросом; тем не менее, оператор BETWEEN может использоваться внутри подзапроса.
Подзапросы с оператором SELECT
Подзапросы чаще всего используются с оператором SELECT. Основной синтаксис выглядит следующим образом —