sql >> Databáze >  >> RDS >> Mysql

SQL vrátí seznam polí obsahujících jiná data než NULL

Vaším cílem je tedy získat seznam názvů sloupců takové, že všechny mají v kterémkoli z řádků alespoň jednu hodnotu, která není NULL, že? Pokud ano, viz níže...

V dotazu SQL nemůžete parametrizovat názvy sloupců, takže budete muset svůj text SQL sestavit dynamicky v klientském jazyce, který si vyberete. Algoritmus by vypadal takto:

  1. Seznam názvů sloupců budete muset znát předem. Existují způsoby, jak automatizovat načítání tohoto seznamu v PostgreSQL , MySQL a většina ostatních databází.
  2. Projděte tento seznam a pro každý column_name dynamicky sestavujte text SQL, například:SELECT column_name FROM YOUR_TABLE WHERE column_name IS NOT NULL LIMIT 1 (viz MySQL LIMIT a PostgreSQL LIMIT ).
  3. Proveďte výše uvedený dotaz a načtěte výsledek. Pokud obsahuje řádek, přidejte column_name do výsledného seznamu .
  4. Pokračujte v opakování, dokud jsou v seznamu názvů sloupců prvky.

Výsledný seznam nyní obsahuje sloupce s alespoň jednou hodnotou jinou než NULL.



  1. gem install pg nefunguje na OSX Lion

  2. 19.3 PDB Zavřít ORA-65107 ORA-16078

  3. Připojte se k orákulu s příklady

  4. Chci, aby tabulka mysql podporovala dva jazyky