Spaltennamen ausgeben lassen?

Hallo zusammen,

ich weiss nicht, ob ich jetzt total auf dem Schlauch stehe, oder gibt es tatsächlich keine Abfragemöglichkeit auf Spaltennamen, um diese nach einem bestimmten Kriterium zu filtern?
Ich möchte z.B. aus meiner DB die Spalten haben (einer Messwerttabelle), die keine NULL Werte beinhalten, also zu denen es auch tatsächlich Daten gibt, um danach die Spaltennamen in einer Benutzeroberfläche darzustellen,um Auswahlmöglichkeiten zu bieten…

Wäre super, wenn mir jemand mit nem kleinen Denkanstoß aus der Misere helfen könnte :wink:

Danke und Grüße,
Marion

Das ist tatsächlich nicht vorgesehen, warum auch? Du filterst nach Inhalten, nicht nach Zeilen.

Sprich: du kannst Zeilen ausschliessen, die Null sind, aber keine kompletten Spalten, die Null sind.



test=*# select * from foo;
 col1 | col2 | col3
------+------+------
    1 |    2 |
    2 |      |
(2 rows)

test=*# select case when avg(col1) is not NULL then 'col1' else NULL end from foo union select case when avg(col2) is not NULL then 'col2' else NULL end from foo union select case when avg(col3) is not NULL then 'col3' else NULL end from foo;
 case
------
 col1
 col2

(3 rows)

Hilft das weiter?

Andreas

Eben, deswegen frage ich ja, mir kam auch keine sinnvolle Abfrage, oder geschweige denn Möglchkeit überhaupt in den Sinn, wegen dieser Tatsache…

Aber wenn dein Beispielcode auch auf Views funktioniert, ist es genau das was ich suche… :slight_smile: werd ich gleich mal ausprobieren, vielen Dank, Andreas!!
Ich hab da nämlich eine wirklich sehr große Tabelle in der Messreihen, teilweise im fünf Sekunden Takt gespeichert sind, und im Moment arbeite ich an einer Anwendung mit Benutzeroberfläche (Python), die mir für eine bestimmte Messstation, alle verfügbaren Messwerte exportieren soll. Deshalb brauche ich dann bei dieser Lösung vorher ein View, das nur Werte der zuvor gewählten Station beinhaltet und kann dann diese Abfrage laufen lassen… wenn das funktioniert, wäre das perfekt!!! Und wenn man dann auch noch die so gefilterten Spalten direkt auswählen kann, um nur genau die Messwerte auszugeben, die der Benutzer auch wirklich haben will, wäre das noch zehnmal besser… :wink:
Ich werde berichten… vielen, vielen Dank nochmal!!

Liebe Grüße, Marion.

Hallo Andreas,

hab das jetzt so mal ausprobiert, funktioniert prima und ist auch recht schnell.
Genau das ist es was ich brauche, die Anfrage funktioniert auch auf Views, d.h. ich kann meine Spaltenauswahl so formulieren, wunderbar !!! Du hast mir da wirklich sehr geholfen, vielen, vielen Dank nochmal!!

Grüße,
Marion.

bleibt noch anzumerken, daß avg() nur mit numerischen Werten geht. Notfalls müßte man sich eine eigene Aggregat-Funktion schreiben.

Andreas