2017-01-14 12 views
0

Ich möchte Zeilen in PostgreSQL Spalte zu konvertieren.Ich will alle Variablen gegen ihre jeweilige ID.aber es funktioniert nicht.Konvertieren von Zeilen zu Spalte in PostgreSQL

enter image description here

Erwartete Ausgabe:

myvar desc fname lname  sdate   edate   id  
title1 desc1 cina jhon 1483920000000 1484524800000  14 
title2 desc2 jhon lname2 1483920000000 1483910000000  16 
title3 desc3 diesel zier 1483920000000 1484524800000  17 



SELECT * FROM crosstab(
'SELECT name, value, id FROM test ORDER BY id') AS (
"myVar" text, "desc" text, "fname" text, "lname" text,"sdate" text,"edate" text, "value" text ,"containerid" bigint); 

Fehler: Fehler: ungültiger Rückgabetyp SQL-Status: 42601 Detail: SQL Rowid Datentyp stimmt nicht überein Rowid Datentyp zurück.

+0

was ist das erwartete Ergebnis? – McNets

+0

Ich habe Bearbeitungsfrage. – nagi

+0

Bitte tippen Sie diese Grafik ein. Fügen Sie keine Bilder ein. Geben Sie einfach 'TABLE test;' ein und legen Sie diese Ausgabe hier ab. Noch besser, wenn Sie sich wirklich interessieren und Upvotes wollen. Fügen Sie die DDL ein. 'CREATE TABLE AS SELECT' und Sie werden Freude haben. –

Antwort

0

Vielleicht kann dies helfen.

ORDER BY 1,2 ist hier erforderlich.

select * 
    from crosstab (
     'select id, name, value 
     from tt1 
     order by 1,2') 
    AS (row_name int, col1 text, col2 text, col3 text, col4 text); 

+----------+-------+--------+--------+--------+ 
| row_name | col1 | col2 | col3 | col4 | 
+----------+-------+--------+--------+--------+ 
| 14 | desc1 | chen | john | title1 | 
+----------+-------+--------+--------+--------+ 
| 15 | desc2 | fname2 | lname2 | title2 | 
+----------+-------+--------+--------+--------+ 
| 16 | desc4 | deiser | ziel | title3 | 
+----------+-------+--------+--------+--------+ 

In der Tat sollten Spalten genannt werden: col1, col2, col3, col4, ...

bestellen hier: http://rextester.com/MFWAW58518

+0

Ihr Beispiel funktioniert ohne Reihenfolge von .... –

+1

@EvanCarroll eine Antwort schreiben, mein Wissen über Kreuztabelle ist Rally begrenzt. – McNets

+0

So ist meins. Ich bekomme immer, was ich will, aber es ist nicht meine starke Gegend. Sie gingen über das hinaus, was ich zu tun bereit war, indem Sie irgendeinen dieser Bildgraphen auftippen. Ich habe dafür eine 0-Toleranz. Ich zeichne die Linie bei der Erstellung von DDL mit Text. Wie auch immer, graben Sie weiter. So werden wir selbst besser. Es kann sehr gut mit ORDER BY 1,2 zu tun haben. Die Doktoren erwähnen es. Ich habe etwas gelernt. Ich konnte es einfach nicht mit deinem Rexster beobachten. –

Verwandte Themen