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

SQL заявка, изберете само ако колоната не е нула, иначе не избирайте

Ако искате да получите ред с две колони, когато има две колони, различни от нула, и 1, ако има само една, трябва да създадете динамично своята заявка.

Ако искате винаги да имате 1 колона, където всеки ред съдържа стойност, различна от нула, можете да го направите с обединение.

SELECT a FROM tbl WHERE a IS NOT NULL AND id = ?
UNION
SELECT b FROM tbl WHERE b IS NOT NULL AND id = ?
UNION
SELECT c FROM tbl WHERE c IS NOT NULL AND id = ?

Ако искате да знаете от кои колони идват стойностите, можете да направите нещо подобно:

SELECT 'col a' AS ColName, a FROM tbl WHERE a IS NOT NULL AND id = ?
UNION
SELECT 'col b', b FROM tbl WHERE b IS NOT NULL AND id = ?
UNION
SELECT 'col c', c FROM tbl WHERE c IS NOT NULL AND id = ?

Забележка:union също премахва дублиращи се резултати. Ако искате да запазите дубликати, използвайте UNION ALL .




  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?

  2. Amazon EC2, mysql прекратява стартирането, защото InnoDB:mmap (x байта) не успя; грешка 12

  3. CURRENT_DATE/CURDATE() не работи като стойност на DATE по подразбиране

  4. Как да покажа стойността на променлива в командния ред в MySQL?

  5. Прост ранг за актуализиране на MySQL с връзки