PostgreSQL: динамически создавать столбцы результатов - PullRequest
0 голосов
/ 02 мая 2011

Я хочу «динамически» создать столбцы результата в запросе PostgreSQL. У меня есть эти таблицы:

CREATE SEQUENCE users_id;
CREATE TABLE users (
  id INT PRIMARY KEY NOT NULL DEFAULT NEXTVAL('users_id'),
  name VARCHAR(128) NOT NULL
);

CREATE SEQUENCE quota_rules_id;
CREATE TABLE quota_rules (
  id INT PRIMARY KEY NOT NULL DEFAULT NEXTVAL('quota_rules_id'),
  user_id INT REFERENCES users(id),
  rule VARCHAR(255) NOT NULL
);
CREATE INDEX user_id_index ON quota_rules(user_id);

INSERT INTO users (name) VALUES ('myname'); -- id=1
INSERT INTO quota_rules (user_id, rule) VALUES (1, 'a');
INSERT INTO quota_rules (user_id, rule) VALUES (1, 'b');
INSERT INTO quota_rules (user_id, rule) VALUES (1, 'c');

И хотите запрос, который возвращает это (1 строка):

SELECT ............ user_id = 1;
name   | quota_rule | quota_rule2 | quota_rule3
myname | a          | b           | c

1 Ответ

1 голос
/ 02 мая 2011

Проверьте функцию crosstab модуля tablefunc

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...