例: CHARACTERパーティション、セッション モード、および大文字小文字の区別 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 構文規則および例

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Published
2021年7月
Language
日本語
Last Update
2021-09-23
dita:mapPath
ja-JP/spp1591731285373.ditamap
dita:ditavalPath
ja-JP/wrg1590696035526.ditaval
dita:id
B035-1144
Product Category
Software
Teradata Vantage

次の例においてANSIモード セッションで文字のマルチレベル パーティション プライマリ インデックス テーブルを作成する場合、デフォルトでANSIモード セッションでは文字リテラルに大文字小文字の区別があるため、システムはテスト値(j||'a')をCASESPECIFICとして処理します。同様に、すべてのパーティション式のすべての範囲境界比較には大文字小文字の区別があります。

連結の1つまたは両方が列参照に関与するパーティション式で||連結演算子を指定すると、システムが静的または動的パーティション排除を使用して、テーブルに対して実行される問合わせのパフォーマンスを改善できる可能性がなくなるため、これは推奨される方法ではないことに注意してください。

Teradataモード セッションでテーブルを作成する場合、Vantageはテスト値をNOT CASESPECIFICとして処理し、パーティション式の範囲境界比較では大文字小文字を区別しません。

     CREATE TABLE t1(
       i INTEGER,
       j CHARACTER(4) NOT CASESPECIFIC,
       k INTEGER)
     PRIMARY INDEX(i)
     PARTITION BY (RANGE_N(j || 'a' BETWEEN 'aaaa' AND 'bbbb',
                                            'cccc' AND 'dddd', 
                  'eeee' AND 'ffff', 
                  'gggg' AND 'hhhh', 
                  'iiii' AND 'jjjj', 
                  'kkkk' AND 'llll',
                  'mmmm' AND 'nnnn',
                  'oooo' AND 'pppp',
                  'qqqq' AND 'rrrr',
                  'ssss' AND 'tttt',
          NO RANGE),
                   RANGE_N(k BETWEEN 1 
                             AND    10 
                             EACH    1));