Leere Spalten ausblenden?

Hallo zusammen,

ich habe mit vielen CASE-Konstrukten eine Kreuztabellenabfrage erstellt, die für 50 Merkmale 50 Spalten nach diesem Schema erzeugt:

avg(CASE id_merkmal WHEN 1 THEN merkwert ELSE NULL END) AS merk1,

avg(CASE id_merkmal WHEN 2 THEN merkwert ELSE NULL END) AS merk2

usw.

Je nachdem wie ich mit Bedingungen die Anzahl der Zeilen einschränke sind dabei aber viele der 50 Spalten einfach leer, weil die Merkmale dort nicht erhoben wurden.

Gibt es denn eine Möglichkeit diese leeren Spalten in der Abfrage direkt auszublenden?

Vielen Dank

Gottseidank nicht - nein !

Ganz schmutzig:

Mit einer Function sich dynamsich ein SQL basteln.


Andreas

ich glaube er will spalten NACH dem select ausblenden lassen …

Im Ergebniss ist es gleich, ob ich gar nicht erst leere Spalten erzeuge oder diese nach der Erzeugung wegwerfe, oder?

Andreas

nein - vor dem select weiss er nicht ob die spalte leer ist …

naja ist ja auch egal …

Ok, schade!

Ich dachte daran, daß ich vielleicht die 50 Spalten Abfrage einer anderen Abfrage unterordne, der ich dann irgendwie mitteile, daß sie nur die Spalten in den SELECT Befehl nehmen soll, die nicht Null sind.

Aber trotzdem danke.

Ja, auf diesem Weg geht das. Dynamisches SQL, kannst Du innerhalb einer function generieren und mit execute ausführen. Aber ich würde nicht empfehlen, für Dein Szenario dies zu versuchen, ist zu schmutzig. Z.B. ist dann nicht bekannt, welche Struktur (Spalten) das Ergebniss hat etc.

Andreas