• SAP HANA Video Tutorials

SAP HANA - SQL 表示式



表示式用於計算一個子句以返回值。HANA 中可以使用不同的 SQL 表示式 -

  • Case 表示式
  • 函式表示式
  • 聚合表示式
  • 表示式中的子查詢

Case 表示式

這用於在 SQL 表示式中傳遞多個條件。它允許在 SQL 語句中使用 IF-ELSE-THEN 邏輯,而無需使用過程。

示例

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 內建函式。

聚合表示式

聚合函式用於執行復雜的計算,如總和、百分比、最小值、最大值、計數、眾數、中位數等。聚合表示式使用聚合函式從多個值計算單個值。

聚合函式 - 總和、計數、最小值、最大值。這些應用於度量值(事實),並且始終與維度相關聯。

常見的聚合函式包括 -

  • 平均值 ()
  • 計數 ()
  • 最大值 ()
  • 中位數 ()
  • 最小值 ()
  • 眾數 ()
  • 總和 ()

表示式中的子查詢

作為表示式的子查詢是一個 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 語句的子查詢

子查詢最常與 SELECT 語句一起使用。基本語法如下 -

示例

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