2016-06-02 7 views
0

Ich möchte eine Zeile erhalten, nur dass enthält die nicht NULL-Werte aus der Tabelle, die aus dem folgenden Code wiedergegeben werden kann:Zusammenführen mehrerer Linien mit nicht NULL-Werte in Redshift

select 
    1 as unique_id, 
    'null' as first, 
    'second' as second, 
    'null' as third 
union all 
select 
    1 as unique_id, 
    'first' as first, 
    'null' as second, 
    'null' as third 
union all 
select 
    1 as unique_id, 
    'null' as first, 
    'null' as second, 
    'third' as third 
+2

Bitte geben Sie die erwartete Ausgabe an. Sollte es nicht nur NULL anstelle von 'NULL' geben - das ist Text, nicht der leere Wert. – Adam

Antwort

0

die Ausgabe Ihres geliefert Code ('null' sollte nULL sein vorausgesetzt) ​​ist:

1, 'first', NULL, NULL 
1, NULL, 'second', NULL 
1, NULL, NULL, 'third' 

von 'merge', ich nehme an, Sie ausgeben möchten, die wie folgt aussieht:

1, 'first', 'second', 'third' 

Das mit getan werden könnte:

SELECT MAX(first), MAX(second), MAX(third) FROM ... GROUP BY unique_id 

Natürlich ist dies vorausgesetzt, dass Sie nur einmal pro Wert pro unique_id erscheinen. Sie könnten auch andere Funktionen wie MIN oder LISTAGG verwenden - sie müssen einfach etwas sein, das NULL-Werte ausschließt.