Учебники

SAP HANA — выражения SQL

Выражение используется для оценки предложения для возврата значений. В 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. Основной синтаксис выглядит следующим образом —