例: CASE_N関数を使用したCHARACTERパーティション - Teradata Database - Teradata Vantage NewSQL Engine - 例: CASE_N関数を使用したCHARACTERパーティション、CREATE TABLE構文の文。

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/wkf1512081455740.ditamap
dita:ditavalPath
ja-JP/wkf1512081455740.ditaval
dita:id
B035-1144
Product Category
Software
Teradata Vantage

次の例は、CASE_N関数に基づくパーティション式を持つ文字パーティションを指定します。この例はCASE_N関数でLIKE演算子を指定するため、静的行パーティション排除をサポートしません(<Teradata Vantage™ SQLリクエストおよびトランザクション処理、B035-1142>を参照)。このため、代わりにこの次の例を使用することにも検討の余地があります。

     CREATE TABLE accounts (
       cust_id     INTEGER, 
       last_name   VARCHAR(30) CHARACTER SET UNICODE NOT CASESPECIFIC, 
       first_name  VARCHAR(30), 
       city        VARCHAR(50))
     PRIMARY INDEX (cust_id)
     PARTITION BY CASE_N (last_name LIKE ‘A%’,
                          last_name LIKE ‘B%’,
                          last_name LIKE ‘C%’,
                          last_name LIKE ‘D%’,
                          last_name LIKE ‘E%’,
                          last_name LIKE ‘F%’,
                          last_name LIKE ‘G%’,
                          last_name LIKE ‘H%’,
                          last_name LIKE ‘I%’,
                          last_name LIKE ‘J%’,
                          last_name LIKE ‘K%’,
                          last_name LIKE ‘L%’,
                          last_name LIKE ‘M%’,
                          last_name LIKE ‘N%’,
                          last_name LIKE ‘O%’,
                          last_name LIKE ‘P%’,
                          last_name LIKE ‘Q%’,
                          last_name LIKE ‘R%’,
                          last_name LIKE ‘S%’,
                          last_name LIKE ‘T%’,
                          last_name LIKE ‘U%’,
                          last_name LIKE ‘V%’,
                          last_name LIKE ‘W%’,
                          last_name LIKE ‘X%’,
                          last_name LIKE ‘Y%’,
                          last_name LIKE ‘Z%’,
                          NO CASE,
                          UNKNOWN);

パーティション式でLIKEを指定する代わりに、以下のようにCREATE TABLEリクエストを使用することを考慮するべきです。これは、これはLIKE演算子をCASE_N関数で指定しておらず静的行パーティション排除をサポートしているので、テーブルに対するリクエストのパフォーマンスを高めるからです。

     CREATE TABLE accounts (
       cust_id     INTEGER, 
       last_name   VARCHAR(30) CHARACTER SET UNICODE NOT CASESPECIFIC, 
       first_name  VARCHAR(30), 
       city        VARCHAR(50))
     PRIMARY INDEX (cust_id)
     PARTITION BY  CASE_N (last_name < 'A', last_name < 'B',
                           last_name < 'C', last_name < 'D',
                           last_name < 'E', last_name < 'F',
                           last_name < 'G', last_name < 'H',
                           last_name < 'I', last_name < 'J',
                           last_name < 'K', last_name < 'L',
                           last_name < 'M', last_name < 'N',
                           last_name < 'O', last_name < 'P',
                           last_name < 'Q', last_name < 'R',
                           last_name < 'S', last_name < 'T',
                           last_name < 'U', last_name < 'V',
                           last_name < 'W', last_name < 'X',
                           last_name < 'Y', last_name >= 'Z',
                           UNKNOWN);