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

Как да намеря най-малко ненулева колона в конкретен ред в SQL?

За съжаление (за вашия случай) поведението на LEAST беше променено в MySQL 5.0.13 (http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#function_least ) - използва се за връщане на NULL само ако всички аргументи са NULL.

Тази промяна дори беше докладвана като грешка:http://bugs.mysql.com/ bug.php?id=15610 Но корекцията беше само за документацията на MySQL, обяснявайки новото поведение и нарушаването на съвместимостта.

Вашето решение беше едно от препоръчаните решения. Друг може да използва IF оператор:

SELECT IF(Col1 IS NULL OR Col2 IS NULL, COALESCE(Col1, Col2), LEAST(Col1,Col2))


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Странно поведение на подфункцията на генератора на Javascript

  2. Бройте поява в таблицата PHP echo

  3. Генериране на SQL заявка въз основа на URL параметри

  4. Как да обърна хеширана и солирана парола?

  5. Грешка при изключение на Java - Sqlite readyStatement.setBlob