EXCLUDE column_list は、クエリ結果から除外される列を指定します。EXCLUDE オプションは、多くの列を含むワイドテーブルから一部の列のみを除外する場合に役立ちます。
構文
EXCLUDE column_list
パラメータ
- column_list
-
クエリによって参照されるテーブルに存在する 1 つ以上の列名のカンマ区切りリスト。column_list は、必要に応じてかっこで囲むことができます。除外リストには列名のみを含めることができ、式 (
upper(col1)
など) やアスタリスク (*) はサポートされていません。column-name, ... | ( column-name, ... )
例:
SELECT * EXCLUDE col1, col2 FROM tablea;
SELECT * EXCLUDE (col1, col2) FROM tablea;
例
次の例では、salesid、listid、sellerid、buyerid、eventid、dateid、qtysold、pricepaid、commission、および saletime 列を含む SALES テーブルを使用しています。SALES テーブルの詳細については、「サンプルデータベース」を参照してください。
次の例では、SALES テーブルから行を返しますが、SALETIME 列は除外します。
SELECT * EXCLUDE saletime FROM sales;
salesid | listid | sellerid | buyerid | eventid | dateid | qtysold | pricepaid | commission
--------+---------+----------+---------+---------+---------+----------+------------+-----------
150314 | 173969 | 48680 | 816 | 8762 | 1827 | 2 | 688 | 103.2
8325 | 8942 | 23600 | 1078 | 2557 | 1828 | 5 | 525 | 78.75
46807 | 52711 | 34388 | 1047 | 2046 | 1828 | 2 | 482 | 72.3
...
次の例では、SALES テーブルから行を返しますが、QTYSOLD 列と SALETIME 列は除外します。
SELECT * EXCLUDE (qtysold, saletime) FROM sales;
salesid | listid | sellerid | buyerid | eventid | dateid | pricepaid | commission
--------+---------+----------+---------+---------+---------+------------+-----------
150314 | 173969 | 48680 | 816 | 8762 | 1827 | 688 | 103.2
8325 | 8942 | 23600 | 1078 | 2557 | 1828 | 525 | 78.75
46807 | 52711 | 34388 | 1047 | 2046 | 1828 | 482 | 72.3
...
次の例では、SALES テーブルから行を返すビューを作成しますが、SALETIME 列は除外します。
CREATE VIEW sales_view AS SELECT * EXCLUDE saletime FROM sales;
SELECT * FROM sales_view;
salesid | listid | sellerid | buyerid | eventid | dateid | qtysold | pricepaid | commission
--------+---------+----------+---------+---------+---------+----------+------------+-----------
150314 | 173969 | 48680 | 816 | 8762 | 1827 | 2 | 688 | 103.2
8325 | 8942 | 23600 | 1078 | 2557 | 1828 | 5 | 525 | 78.75
46807 | 52711 | 34388 | 1047 | 2046 | 1828 | 2 | 482 | 72.3
...
次の例では、除外されていない列のみを選択して一時テーブルに格納します。
SELECT * EXCLUDE saletime INTO TEMP temp_sales FROM sales;
SELECT * FROM temp_sales;
salesid | listid | sellerid | buyerid | eventid | dateid | qtysold | pricepaid | commission
--------+---------+----------+---------+---------+---------+----------+------------+-----------
150314 | 173969 | 48680 | 816 | 8762 | 1827 | 2 | 688 | 103.2
8325 | 8942 | 23600 | 1078 | 2557 | 1828 | 5 | 525 | 78.75
46807 | 52711 | 34388 | 1047 | 2046 | 1828 | 2 | 482 | 72.3
...