sql >> Database teknologi >  >> RDS >> Mysql

Hvordan finder man mindst ikke-nul kolonne i en bestemt række i SQL?

Desværre (for dit tilfælde) blev opførsel af LEAST ændret i MySQL 5.0.13 (http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#function_least ) - det plejede kun at returnere NULL, hvis alle argumenter er NULL.

Denne ændring blev endda rapporteret som en fejl:http://bugs.mysql.com/ bug.php?id=15610 Men rettelsen var kun til MySQL-dokumentation, der forklarer ny adfærd og kompatibilitetsbrud.

Din løsning var en af ​​de anbefalede løsninger. En anden kan bruge IF-operator:

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


  1. Flet rækkeværdier til en CSV (a.k.a GROUP_CONCAT for SQL Server)

  2. Mysql - Arkivering af data, hvilken løsning skal jeg bruge?

  3. Når du gemmer en datetime i sql server (datetime type), hvilket format gemmer den den i?

  4. datanucleus + jpa + orakel. Mærkelig fejl med tabeller, der ikke eksisterer