Więc Twoim celem jest uzyskanie listy nazw kolumn tak, że wszystkie z nich mają co najmniej jedną wartość różną od NULL w dowolnym wierszu, prawda? Jeśli tak, zobacz poniżej...
Nie możesz sparametryzować nazw kolumn w zapytaniu SQL, więc musisz dynamicznie budować tekst SQL w wybranym przez siebie języku klienta. Algorytm wyglądałby tak:
- Z wyprzedzeniem musisz znać listę nazw kolumn. Istnieją sposoby na zautomatyzowanie pobierania tej listy w PostgreSQL , MySQL i większość innych baz danych.
- Iteruj po tej liście i dla każdej
column_name
dynamicznie buduj tekst SQL, taki jak:SELECT column_name FROM YOUR_TABLE WHERE column_name IS NOT NULL LIMIT 1
(patrz MySQL LIMIT i PostgreSQL LIMIT ). - Wykonaj powyższe zapytanie i pobierz wynik. Jeśli zawiera wiersz, dodaj
column_name
do listy wyników . - Kontynuuj iterację, dopóki na liście nazw kolumn znajdują się elementy.
Wynikowa lista zawiera teraz kolumny z co najmniej jedną wartością inną niż NULL.