sql >> Databáze >  >> RDS >> PostgreSQL

Rozdělovací tabulka založená na prvním písmenu pole varchar

Můžete použít výraz v partition by klauzule, např.:

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');

Výsledky:

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)

Pokud by rozdělení nerozlišovalo malá a velká písmena, můžete použít

create table my_table(name text)
partition by list (lower(left(name, 1)));

Přečtěte si dokumentaci:




  1. Jak vytvořit sloučení dvou datových sad s vybraným příkazem SQL (Oracle DBMS)?

  2. Chyba MySQL 1170 (42000):Sloupec BLOB/TEXT použitý ve specifikaci klíče bez délky klíče

  3. Rozdíl mezi aktuálním a předchozím časovým razítkem

  4. Výkon MySQL:Indexy MySQL/MariaDB