codecamp

OceanBase 表达式列表

表达式列表(Expression List)是一组其它表达式的组合。

表达式列表可以出现在比较和成员条件,以及查询和子查询的 GROUP BY 子句中。在比较和成员条件中的表达式列表有时被称为行值构造器(Row value constructor)或者行构造器(Row constructor)。

比较和成员条件出现在 WHERE 子句中。它们可以包含一个或多个逗号分隔的表达式,或是一组或多组表达式,其中每组表达式包含一个或多个逗号分隔的表达式。在接下来的例子中(多组表达式):

  • 每一组被括号包含。

  • 每一组必须包含相同数量的表达式。

  • 每一组中表达式的数量需要与比较条件中运算符之前的表达式的数量匹配,或者与成员条件中 IN 关键字之前的表达式的数量匹配。

逗号分隔的表达式列表最多只能包含 1000 个表达式。逗号分隔的表达式组列表可以包含任意数量表达式组,但是每一表达式组最多只能包含 1000 个表达式。

下例是一些有效的表达式列表:

(10, 20, 40)
('SCOTT', 'BLAKE', 'TAYLOR')
( ('Guy', 'Himuro', 'GHIMURO'),('Karen', 'Colmenares', 'KCOLMENA') )

在第三个例子中,每一组的表达式数量必须与 SQL 语句条件的第一部分的表达式数量相等。例如:

SELECT * FROM employees
    WHERE (first_name, last_name, email) IN
        (('Guy', 'Himuro', 'GHIMURO'),('Karen', 'Colmenares', 'KCOLMENA'));

在简单的 GROUP BY 子句中,使用大写或小写形式的表达式列表都可以:

SELECT department_id, MIN(salary) min, MAX(salary) max FROM employees 
    GROUP BY department_id, salary
    ORDER BY department_id, min, max;

SELECT department_id, MIN(salary) min, MAX(salary) max FROM employees 
    GROUP BY (department_id, salary)
    ORDER BY department_id, min, max;

在 GROUP BY 子句的 ROLLUPCUBE 和 GROUPING SETS 子句中,您可以在同一表达式列表中将单个表达式与表达式组结合。下例展示了一些在 SQL 语句中有效分组表达式列表:

SELECT prod_category, prod_subcategory, country_id, cust_city, count(*)
    FROM products, sales, customers
    WHERE sales.prod_id = products.prod_id
        AND sales.cust_id=customers.cust_id
        AND sales.time_id = '01-oct-00'
        AND customers.cust_year_of_birth BETWEEN 1960 and 1970
    GROUP BY GROUPING SETS (
        (prod_category, prod_subcategory, country_id, cust_city), (prod_category, prod_subcategory, country_id),        (prod_category, prod_subcategory),
        country_id
        )
    ORDER BY prod_category, prod_subcategory, country_id, cust_city;


OceanBase 标量子查询表达式
OceanBase SQL条件概述
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

OceanBase 控制台指南

OceanBase ODC 使用指南

OceanBase Web 版 ODC

OceanBase 客户端版 ODC

OceanBase Connector/J 开发者指南

OceanBase 什么是OceanBase Connector/J

OceanBase SQL 参考(MySQL 模式)

OceanBase SQL 参考(Oracle 模式)

OceanBase 基本元素

OceanBase 数据库对象

OceanBase 函数

OceanBase 单行函数

OceanBase 返回数字的字符串函数

OceanBase 通用比较函数

OceanBase 编码解码函数

OceanBase SQL 调优指南

OceanBase 相关协议

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }