sql >> データベース >  >> RDS >> PostgreSQL

varcharフィールドの最初の文字に基づくパーティション分割テーブル

    partition byで式を使用できます 条項、例:

    create table my_table(name text)
    partition by list (left(name, 1));
    
    create table my_table_a
    partition of my_table
    for values in ('a');
    
    create table my_table_b
    partition of my_table
    for values in ('b');
    

    結果:

    insert into my_table 
    values
        ('abba'), ('alfa'), ('beta');
    
    select 'a' as partition, name from my_table_a
    union all
    select 'b' as partition, name from my_table_b;
    
     partition | name 
    -----------+------
     a         | abba
     a         | alfa
     b         | beta
    (3 rows)
    

    パーティショニングで大文字と小文字を区別しない場合は、

    を使用できます。
    create table my_table(name text)
    partition by list (lower(left(name, 1)));
    

    ドキュメントを読む:




    1. MYSQLで行をヘッダーに転置する

    2. SQLServer待機イベント-1

    3. シーケンス値を使用して行を挿入しているときに列が許可されないエラー

    4. Oracleテーブル変数/配列から値を選択しますか?