drifter800 Geschrieben 24. Februar 2009 Geschrieben 24. Februar 2009 Moinmoin, ich habe da mal eine Frage ... Wenn ich mit sql Daten selektiere sieht das ja in etwa so aus; << select Niederlassungsnummer, Produktnummer from sorte where Niederlassungsnummer in (30,31);>> Niederlassungsnummer Produktnummer 30 10 30 20 30 22 30 24 31 10 31 21 31 22 31 25 Wenn ich das jetzt aber anders darstellen möchte, nämlich so Niederlassungsnummer Produktnummer 30 10, 20, 22, 24 31 10, 21, 22, 25 Wie müsste das Statement aussehen? :confused: Mfg Sven
Amstelchen Geschrieben 24. Februar 2009 Geschrieben 24. Februar 2009 kommt auf die datenbank drauf an jedoch bieten manche funktionen wie PIVOT etc. an; denn das ist genau das, was du willst: pivotieren. s'Amstel
drifter800 Geschrieben 24. Februar 2009 Autor Geschrieben 24. Februar 2009 Hallo, ist ne Oracle DB auf die ich mit dem PLSQL-Developer zugreife, stellt sich somit die die Frage ob SQL das leistet Mfg Sven
dbwizard Geschrieben 24. Februar 2009 Geschrieben 24. Februar 2009 (bearbeitet) Hallo, ist ne Oracle DB auf die ich mit dem PLSQL-Developer zugreife, stellt sich somit die die Frage ob SQL das leistet Mfg Sven -ja/Nein/Vieleicht....Welche Version der DB ist es denn ? -- Ab Oracle 9 könntest du mal folgendes probieren : select deptno, xmltransform ( sys_xmlagg ( sys_xmlgen(ename) ), xmltype ( '<?xml version="1.0"?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <xsl:for-each select="/ROWSET/ENAME"> <xsl:value-of select="text()"/>;</xsl:for-each> </xsl:template> </xsl:stylesheet>' ) ).getstringval() listagg from scott.emp group by deptno / - Dies ist für das Beispielschema SCOTT/TIGER - Müsstest du für deine Zwecke anpassen - Ab Oracle 11g gibt es dafür einen deziedierte PIVOT - Funktion Gruss Bearbeitet 24. Februar 2009 von dbwizard
Amstelchen Geschrieben 24. Februar 2009 Geschrieben 24. Februar 2009 oracle 9, 10, 11? AFAIR ist PIVOT ab 11g implementiert, davor müsstest du irgendein verfügbares package verwenden. s'Amstel
drifter800 Geschrieben 24. Februar 2009 Autor Geschrieben 24. Februar 2009 Hallo, danke für die Antworten, mit "pivotieren" bin ich selbst nochmal suchen gegangen und habe auch was gefunden was ich mal ausprobieren muss. Allerdings möchte ich meine Frage nochmal vereinfachen (ob das allerdings wirklich einfacher ist?.....). Die neu horizontal dargestellten Produkte sollen nicht in jeweils eigenen Spalten sondern kommagetrennt zusammen in einer Spalte stehen. Also Niederlassungsnummer Produktnummer 30-------------------10, 20, 22, 24 31-------------------10, 21, 22, 25 mfg Sven (Wenn der Bauer nicht schwimmen kann ist die Badehose schuld!!)
dbwizard Geschrieben 24. Februar 2009 Geschrieben 24. Februar 2009 Hallo, danke für die Antworten, mit "pivotieren" bin ich selbst nochmal suchen gegangen und habe auch was gefunden was ich mal ausprobieren muss. Allerdings möchte ich meine Frage nochmal vereinfachen (ob das allerdings wirklich einfacher ist?.....). Die neu horizontal dargestellten Produkte sollen nicht in jeweils eigenen Spalten sondern kommagetrennt zusammen in einer Spalte stehen. Also Niederlassungsnummer Produktnummer 30-------------------10, 20, 22, 24 31-------------------10, 21, 22, 25 mfg Sven (Wenn der Bauer nicht schwimmen kann ist die Badehose schuld!!) Hallo, hast du mein Beispiel probiert ? Es macht ja genau das gewünschte ? Du kannst das "Trennzeichen" hier einstellen (Aktuell ist es ein Strichpunkt) <xsl:value-of select="text()"/>;</xsl:for-each> <<<-----Hier Strichpunkt durch Komma oder was auch immer erstetzen... gruss
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden