Mysql
 sql >> база данни >  >> RDS >> Mysql

SQL за връщане на списък с полета, съдържащи данни, различни от NULL

Значи целта ви е да получите списъка с имена на колони така че всички те да имат поне една стойност, различна от NULL, във всеки от редовете, нали? Ако е така, вижте по-долу...

Не можете да параметризирате имената на колони в SQL заявка, така че ще трябва да изградите своя SQL текст динамично, на клиентския език по ваш избор. Алгоритъмът би изглеждал така:

  1. Ще трябва да знаете списъка с имена на колони предварително. Има начини за автоматизиране на извличането на този списък в PostgreSQL , MySQL и повечето други бази данни.
  2. Прегледайте този списък и за всеки column_name динамично изградете SQL текста, като например:SELECT column_name FROM YOUR_TABLE WHERE column_name IS NOT NULL LIMIT 1 (вижте MySQL LIMIT и PostgreSQL LIMIT ).
  3. Изпълнете заявката по-горе и извлечете резултата. Ако има ред в него, добавете column_name до резултатния списък .
  4. Продължете да повтаряте, докато има елементи в списъка с имена на колони.

Полученият списък вече съдържа колони с поне една стойност, различна от NULL.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Оттеглено:mysql_connect()

  2. MySQL заявка за изчисляване на процента от общата колона

  3. Как да получите следващия буквено-цифров идентификатор въз основа на съществуваща стойност от MySQL

  4. MySQL:GROUP_CONCAT с LEFT JOIN

  5. Как да обедините 2 или повече периоди от време в 1