Mysql
 sql >> Base de données >  >> RDS >> Mysql

Fonction Mysql pour transformer des valeurs non nulles

Malheureusement, il n'y a pas de fonction pour votre comportement, mais il est simple de créer votre propre fonction si vous avez les permissions pour cela, sinon vous pouvez également ajouter un IF THEN ELSE à votre requête comme vous l'avez déjà montré, mais ce ne serait pas une réponse à votre question. Si vous voulez créer une fonction, vous aurez le problème d'avoir besoin de types de paramètres explicites et avec mysql, il n'est malheureusement pas non plus fonctionnel de surcharger une fonction (même nom de fonction mais différents types de paramètres). Vous avez donc besoin pour différents types de fonctions différentes avec des noms de fonction différents. Cela ressemblerait à ça :

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

Vous devrez peut-être aussi faire attention au jeu de caractères correct que vous pouvez également spécifier à la clause de retour.

Et la solution avec une requête que vous avez déjà donnée :

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