Dus uw doel is om de lijst met kolomnamen . te krijgen zodat ze allemaal minstens één niet-NULL-waarde hebben in een van de rijen, toch? Zo ja, zie hieronder...
U kunt namen van kolommen in een SQL-query niet parametriseren, dus u moet uw SQL-tekst dynamisch opbouwen in de clienttaal van uw keuze. Het algoritme ziet er als volgt uit:
- Je moet de lijst met kolomnamen van tevoren kennen. Er zijn manieren om het ophalen van deze lijst te automatiseren in PostgreSQL , MySQL en de meeste andere databases.
- Herhaal door deze lijst en voor elke
column_name
dynamisch de SQL-tekst opbouwen zoals:SELECT column_name FROM YOUR_TABLE WHERE column_name IS NOT NULL LIMIT 1
(zie de MySQL LIMIT en PostgreSQL LIMIT ). - Voer de bovenstaande query uit en haal het resultaat op. Als er een rij in staat, voeg dan de
column_name
. toe naar de resultatenlijst . - Blijf herhalen zolang er elementen in de lijst met kolomnamen staan.
De resulterende lijst bevat nu kolommen met ten minste één niet-NULL-waarde.