例: マルチレベルPPIを定義するパーティション化式のリストでCASE_Nの使用 - Teradata Database - Teradata Vantage NewSQL Engine - CASE Nの例: マルチレベルPPIを定義するパーティション化式のリストでCASE_Nの使用。

Teradata Vantage™ SQL関数、演算子、式および述部

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-29
dita:mapPath
ja-JP/xzf1512079057909.ditamap
dita:ditavalPath
ja-JP/xzf1512079057909.ditaval
dita:id
B035-1145
Product Category
Software
Teradata Vantage

以下の例では、「例: 行が割り当てられるパーティションの定義」を変更して、マルチレベルPPIを定義するパーティション化式のリストでCASE_Nを使用しています。

   CREATE TABLE orders 
    (storeid INTEGER NOT NULL
    ,productid INTEGER NOT NULL
    ,orderdate DATE FORMAT 'yyyy-mm-dd' NOT NULL
    ,totalorders INTEGER NOT NULL)
    PRIMARY INDEX (storeid, productid) 
     PARTITION BY (CASE_N(totalorders < 100, totalorders < 1000,
                          NO CASE)
                  ,CASE_N(orderdate <= '2005-12-31', NO CASE) );

この例では、行が割り当てられる6つのパーティションが定義されています。最初のCASE_N式は、totalorders列の値に基づいて3つのパーティションを定義しています。2番目のCASE_N式は、orderdate列の値に基づいて3つのパーティションをそれぞれ2つのパーティションに再分割しています。

レベル1パーティション番号 レベル2パーティション番号 条件
1 1 totalorders列の値は100より小さく、orderdate列の値は'2005-12-31'より小さいか等しい。
2 totalorders列の値は100より小さく、orderdate列の値は'2005-12-31'より大きい。
2 1 totalorders列の値は1000より小さく、100より大きいか等しい。orderdate列の値は'2005-12-31'より小さいか等しい。
2 totalorders列の値は1000より小さく、100より大きいか等しい。orderdate列の値は'2005-12-31'より大きい。
3 1 totalorders列の値は1000より大きいか等しく、orderdate列の値は'2005-12-31'より小さいか等しい。
2 totalorders列の値は1000より大きいか等しく、orderdate列の値は'2005-12-31'より大きい。