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

Jak najít nejméně nenulový sloupec v jednom konkrétním řádku v SQL?

Bohužel (pro váš případ) chování LEAST bylo změněno v MySQL 5.0.13 (http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#function_least ) - vracelo hodnotu NULL, pouze pokud jsou všechny argumenty NULL.

Tato změna byla dokonce nahlášena jako chyba:http://bugs.mysql.com/ bug.php?id=15610 Ale oprava se týkala pouze dokumentace MySQL, vysvětlující nové chování a přerušení kompatibility.

Vaše řešení bylo jedním z doporučených řešení. Jiný může používat operátor IF:

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


  1. PostgreSQL - uživatel DB by měl mít povoleno pouze volat funkce

  2. Jak získat jméno krátkého dne z data v MariaDB

  3. Zjistit, zda je datum v letním čase v MySql

  4. Jak exportovat výsledky dotazu do souboru CSV v SQL Developer (Oracle)