PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Еквивалент на Group_concat в postgresql 8.2.11

"не е съвсем дубликат" в коментарите трябва да ви насочи в правилната посока:създайте свой собствен агрегат функция . Първо ще ви трябва неагрегирана функция за конкатенация на низове, нещо като това:

create function concat(t1 text, t2 text) returns text as $$
begin
    return t1 || t2;
end;
$$ language plpgsql;

След това можете да дефинирате своя собствена сборна версия на тази функция:

create aggregate group_concat(
    sfunc    = concat,
    basetype = text,
    stype    = text,
    initcond = ''
);

Сега можете да group_concat всичко, което искате:

select group_concat(s)
from t
group by g

Изрових това от архивите си, но мисля, че трябва да работи в 8.2.

Имайте предвид, че 8.2 вече не се поддържа, така че може да искате да надстроите до поне 8.4 възможно най-скоро.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Предотвратяване на падаща маса, ако условията не са изпълнени

  2. Часова зона на заявката - db сървърът и клиентската машина имат различни часови зони

  3. Нови функции за съвместимост на Oracle в PostgresPlus Advanced Server 9.3Beta

  4. Postgresql - Създаване на база данни и таблица динамично

  5. PostgreSQL:Намерете изречения, най-близки до дадено изречение