创新互联OceanBase教程: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表达式列表
文章链接:http://www.shufengxianlan.com/qtweb/news3/188803.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联