📣新登場!TiDB Cloud BYOC、TiDB Cloud Filesystem、PostgreSQL-compatible TiDB Cloud Starter がパブリックプレビュー中。このページは自動翻訳されたものです。原文はこちらからご覧ください。

集合演算子



集合演算子は、2 つのクエリの結果を 1 つの結果に結合します。TiDB Cloud Lake は次の集合演算子をサポートしています。

INTERSECT

両方のクエリで選択された、重複のないすべての行を返します。

構文

SELECT column1 , column2 .... FROM table_names WHERE condition INTERSECT SELECT column1 , column2 .... FROM table_names WHERE condition

例

create table t1(a int, b int); create table t2(c int, d int); insert into t1 values(1, 2), (2, 3), (3 ,4), (2, 3); insert into t2 values(2,2), (3, 5), (7 ,8), (2, 3), (3, 4); select * from t1 intersect select * from t2;

Output:

2|3 3|4

EXCEPT

最初のクエリで選択され、2 番目のクエリでは選択されない、重複のないすべての行を返します。

構文

SELECT column1 , column2 .... FROM table_names WHERE condition EXCEPT SELECT column1 , column2 .... FROM table_names WHERE condition

例

create table t1(a int, b int); create table t2(c int, d int); insert into t1 values(1, 2), (2, 3), (3 ,4), (2, 3); insert into t2 values(2,2), (3, 5), (7 ,8), (2, 3), (3, 4); select * from t1 except select * from t2;

Output:

1|2

UNION [ALL]

2 つ以上の結果セットの行を結合します。各結果セットは同じ数のカラムを返す必要があり、対応するカラムは同じデータ型、または互換性のあるデータ型である必要があります。

結果セットを結合する際、デフォルトでは重複行が削除されます。重複行を含めるには、UNION ALL を使用します。

構文

SELECT column1 , column2 ... FROM table_names WHERE condition UNION [ALL] SELECT column1 , column2 ... FROM table_names WHERE condition [UNION [ALL] SELECT column1 , column2 ... FROM table_names WHERE condition]... [ORDER BY ...]

例

CREATE TABLE support_team ( NAME STRING, salary UINT32 ); CREATE TABLE hr_team ( NAME STRING, salary UINT32 ); INSERT INTO support_team VALUES ('Alice', 1000), ('Bob', 3000), ('Carol', 5000); INSERT INTO hr_team VALUES ('Davis', 1000), ('Eva', 4000); -- The following code returns the employees in both teams who are paid less than 2,000 dollars: SELECT NAME AS SelectedEmployee, salary FROM support_team WHERE salary < 2000 UNION SELECT NAME AS SelectedEmployee, salary FROM hr_team WHERE salary < 2000 ORDER BY selectedemployee DESC;

Output:

Davis|1000 Alice|1000

このページは役に立ちましたか?