преобразовать строку в столбцы в oracle10g - PullRequest
1 голос
/ 18 августа 2010

как я могу преобразовать строки в столбцы в oracle 10g (как pivot в oracle 11g), чтобы я мог добавить несколько условий 'и' для первичного ключа.

ex: выбрать emp_name из emp

где empid = 1 и emp_age = 21;где empid = 12 и emp_age = 23;

без использования «in», мне нужно получить записи, которые удовлетворяют всем вышеперечисленным условиям («Мне нравится» и «операция»).

Ответы [ 2 ]

2 голосов
/ 18 августа 2010

Эта запись в блоге по сводным запросам может дать вам несколько идей.

0 голосов
/ 18 августа 2010

Нет простого способа сделать это в sql.Если вы знаете, сколько столбцов вам нужно, прочитайте это: http://thinkoracle.blogspot.com/2005/09/pivot-and-crosstab-queries.html

CREATE TABLE CFL (season NUMBER(4), team VARCHAR2(16), points NUMBER(3));
INSERT INTO CFL (season, team, points) VALUES (2004, 'Argonauts', 21);
INSERT INTO CFL (season, team, points) VALUES (2004, 'Alouettes', 28);
INSERT INTO CFL (season, team, points) VALUES (2004, 'Tiger-Cats', 19);
INSERT INTO CFL (season, team, points) VALUES (2004, 'Renegades', 10);
INSERT INTO CFL (season, team, points) VALUES (2003, 'Argonauts', 18);


SELECT team, 
DECODE (season, 2002, points, NULL) Yr2002,
DECODE (season, 2003, points, NULL) Yr2003,
DECODE (season, 2004, points, NULL) Yr2004
FROM (SELECT season, team, points FROM CFL);
...