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

Funzione MySQL per trasformare valori non nulli

Sfortunatamente non esiste una funzione per il tuo comportamento, ma è semplice creare la tua funzione se hai i permessi per quello, altrimenti potresti anche aggiungere un IF THEN ELSE alla tua domanda come hai già mostrato, ma non sarebbe una risposta per la tua domanda. Se vuoi creare una funzione, avrai il problema di aver bisogno di tipi di parametri espliciti e con mysql sfortunatamente non è nemmeno funzionale sovraccaricare una funzione (stesso nome di funzione ma tipi di parametri diversi). Quindi hai bisogno di diversi tipi di funzioni diverse con nomi di funzioni diversi. Sembrerebbe così:

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

Dovresti forse anche occuparti del set di caratteri corretto che puoi anche specificare nella clausola di restituzione.

E la soluzione con una domanda che hai già dato:

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