- SAP HANA 教程
- SAP HANA - 主页
- SAP HANA简介
- SAP HANA - 概述
- 内存计算引擎
- SAP HANA - 工作室
- 工作室管理视图
- SAP HANA - 系统监视器
- SAP HANA - 信息建模器
- SAP HANA - 核心架构
- SAP HANA 建模
- SAP HANA - 建模
- SAP HANA - 数据仓库
- SAP HANA - 表
- SAP HANA - 包
- SAP HANA - 属性视图
- SAP HANA - 分析视图
- SAP HANA - 计算视图
- SAP HANA - 分析权限
- SAP HANA - 信息编辑器
- SAP HANA - 导出和导入
- SAP HANA 数据复制
- SAP HANA - 数据复制概述
- SAP HANA - 基于 ETL 的复制
- SAP HANA - 基于日志的复制
- SAP HANA - DXC 方法
- SAP HANA - CTL 方法
- SAP HANA - MDX 提供商
- SAP HANA SQL
- SAP HANA - SQL 概述
- SAP HANA - 数据类型
- SAP HANA - SQL 运算符
- SAP HANA - SQL 函数
- SAP HANA - SQL 表达式
- SAP HANA - SQL 存储过程
- SAP HANA - SQL 序列
- SAP HANA - SQL 触发器
- SAP HANA - SQL 同义词
- SAP HANA - SQL 解释计划
- SAP HANA - SQL 数据分析
- SAP HANA - SQL 脚本
- SAP HANA 有用资源
- SAP HANA - 问题与解答
- SAP HANA - 快速指南
- SAP HANA - 有用的资源
- SAP HANA - 讨论
SAP HANA - SQL 表达式
表达式用于计算子句以返回值。HANA 中可以使用不同的 SQL 表达式 -
- 案例表达式
- 函数表达式
- 聚合表达式
- 表达式中的子查询
案例表达
这用于在 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 内置函数。
聚合表达式
聚合函数用于执行复杂的计算,如总和、百分比、最小值、最大值、计数、众数、中位数等。聚合表达式使用聚合函数从多个值计算单个值。
聚合函数- 求和、计数、最小值、最大值。这些应用于度量值(事实),并且始终与维度相关联。
常见的聚合函数包括 -
- 平均的 ()
- 数数 ()
- 最大限度 ()
- 中位数 ()
- 最低限度 ()
- 模式 ()
- 总和 ()
表达式中的子查询
作为表达式的子查询是一个 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 | +----+----------+-----+---------+----------+