Ihr Ziel ist es also, die Liste der Spaltennamen zu erhalten so dass alle mindestens einen Nicht-NULL-Wert in einer der Zeilen haben, richtig? Wenn ja, siehe unten...
Sie können Spaltennamen in einer SQL-Abfrage nicht parametrisieren, daher müssen Sie Ihren SQL-Text dynamisch in der Clientsprache Ihrer Wahl erstellen. Der Algorithmus würde wie folgt aussehen:
- Sie müssen die Liste der Spaltennamen im Voraus kennen. Es gibt Möglichkeiten, das Abrufen dieser Liste in PostgreSQL zu automatisieren , MySQL und die meisten anderen Datenbanken.
- Durchlaufen Sie diese Liste und für jeden
column_name
Erstellen Sie dynamisch den SQL-Text wie:SELECT column_name FROM YOUR_TABLE WHERE column_name IS NOT NULL LIMIT 1
(siehe das MySQL LIMIT und PostgreSQL LIMIT ). - Führen Sie die obige Abfrage aus und rufen Sie das Ergebnis ab. Wenn es eine Zeile enthält, fügen Sie den
column_name
hinzu zur Ergebnisliste . - Iterieren Sie weiter, solange Elemente in der Spaltennamensliste vorhanden sind.
Die Ergebnisliste enthält nun Spalten mit mindestens einem Nicht-NULL-Wert.