2010-08-18 12 views
1

comment puis-je convertir des lignes dans des colonnes dans oracle 10g (comme pivot dans oracle 11g), de sorte que je peux ajouter plusieurs 'et' des conditions pour la clé primaire.convertir ligne en colonnes dans oracle10g

ex: select emp_name de emp

où empid = 1 et emp_age = 21; où empid = 12 et emp_age = 23; Sans utiliser 'in', je dois obtenir des enregistrements qui satisfont toutes les conditions ci-dessus (comme opération 'et').

Répondre

0

Il n'y a pas de moyen facile de le faire en SQL. Si vous savez combien de colonnes vous devez lire ceci: 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); 
+0

déclaration de décodage est équivalent à, instruction IF-THEN-ELSE: mais je dois ajouter condtion que lorsque la saison = 2002 et points = 10, où la saison = 2003 et points = 26 au-dessus où condtion i besoin d'appliquer l'opération 'AND'. y a-t-il un moyen d'obtenir. – gokul