Så dit mål er at få listen over kolonnenavne sådan at de alle har mindst én ikke-NULL-værdi i nogen af rækkerne, ikke? Hvis ja, se nedenfor...
Du kan ikke parametrisere navne på kolonner i en SQL-forespørgsel, så du bliver nødt til at bygge din SQL-tekst dynamisk på det klientsprog, du vælger. Algoritmen ville se sådan ud:
- Du skal kende listen over kolonnenavne på forhånd. Der er måder at automatisere hentning af denne liste i PostgreSQL , MySQL og de fleste andre databaser.
- Gentag gennem denne liste og for hver
column_name
opbygge SQL-teksten dynamisk såsom:SELECT column_name FROM YOUR_TABLE WHERE column_name IS NOT NULL LIMIT 1
(se MySQL LIMIT og PostgreSQL LIMIT ). - Udfør forespørgslen ovenfor og hent resultatet. Hvis der er en række i den, skal du tilføje
column_name
til resultatlisten . - Fortsæt med at gentage, mens der er elementer i kolonnenavnelisten.
Den resulterende liste indeholder nu kolonner med mindst én ikke-NULL-værdi.