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

Funkce Mysql pro transformaci nenulových hodnot

Bohužel neexistuje žádná funkce pro vaše chování, ale je snadné vytvořit si vlastní funkci, pokud k tomu máte oprávnění, jinak můžete také přidat IF THEN ELSE na váš dotaz, jak jste již ukázali, ale to by nebyla odpověď na vaši otázku. Pokud chcete vytvořit funkci, budete mít problém, že potřebujete explicitní typy parametrů a u mysql bohužel také není funkční přetížení funkce (stejný název funkce, ale různé typy parametrů). Takže pro různé typy potřebujete různé funkce s různými názvy funkcí. Vypadalo by to takto:

    CREATE FUNCTION `fmap_varchar`(e1 VARCHAR(255), e2 VARCHAR(255) )
    RETURNS VARCHAR(255) DETERMINISTIC
    RETURN IF(e1 IS NULL, NULL, e2);

Možná byste se také museli postarat o správnou znakovou sadu, kterou můžete také zadat v klauzuli returns.

A řešení s dotazem, který jste již zadali:

    SELECT IF(something IS NULL, NULL, anotherthing) FROM your_table;



  1. Analýza časových razítek - udělat to v MySQL nebo v PHP?

  2. MySQL SELECT n záznamy založené na GROUP BY

  3. Jaký je rozdíl mezi MySQLdb, mysqlclient a MySQL konektorem/Pythonem?

  4. Jak převést hierarchické dotazy oracle na postgresql?