OceanBase 表達(dá)式列表

2021-06-25 17:10 更新

表達(dá)式列表(Expression List)是一組其它表達(dá)式的組合。

表達(dá)式列表可以出現(xiàn)在比較和成員條件,以及查詢和子查詢的 GROUP BY 子句中。在比較和成員條件中的表達(dá)式列表有時(shí)被稱為行值構(gòu)造器(Row value constructor)或者行構(gòu)造器(Row constructor)。

比較和成員條件出現(xiàn)在 WHERE 子句中。它們可以包含一個(gè)或多個(gè)逗號(hào)分隔的表達(dá)式,或是一組或多組表達(dá)式,其中每組表達(dá)式包含一個(gè)或多個(gè)逗號(hào)分隔的表達(dá)式。在接下來的例子中(多組表達(dá)式):

  • 每一組被括號(hào)包含。

  • 每一組必須包含相同數(shù)量的表達(dá)式。

  • 每一組中表達(dá)式的數(shù)量需要與比較條件中運(yùn)算符之前的表達(dá)式的數(shù)量匹配,或者與成員條件中 IN 關(guān)鍵字之前的表達(dá)式的數(shù)量匹配。

逗號(hào)分隔的表達(dá)式列表最多只能包含 1000 個(gè)表達(dá)式。逗號(hào)分隔的表達(dá)式組列表可以包含任意數(shù)量表達(dá)式組,但是每一表達(dá)式組最多只能包含 1000 個(gè)表達(dá)式。

下例是一些有效的表達(dá)式列表:

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

在第三個(gè)例子中,每一組的表達(dá)式數(shù)量必須與 SQL 語句條件的第一部分的表達(dá)式數(shù)量相等。例如:

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

在簡單的 GROUP BY 子句中,使用大寫或小寫形式的表達(dá)式列表都可以:

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 子句的 ROLLUP、CUBE 和 GROUPING SETS 子句中,您可以在同一表達(dá)式列表中將單個(gè)表達(dá)式與表達(dá)式組結(jié)合。下例展示了一些在 SQL 語句中有效分組表達(dá)式列表:

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;


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)