Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL-Funktion zum Transformieren von Nicht-Null-Werten

Leider gibt es keine Funktion für Ihr Verhalten, aber es ist einfach, Ihre eigene Funktion zu erstellen, wenn Sie die Berechtigungen dafür haben, ansonsten könnten Sie auch einen IF THEN ELSE hinzufügen zu deiner Frage, wie du schon gezeigt hast, aber das wäre keine Antwort auf deine Frage. Wenn Sie eine Funktion erstellen möchten, dann haben Sie das Problem, dass Sie explizite Parametertypen benötigen und es mit mysql leider auch nicht funktioniert, eine Funktion zu überladen (gleicher Funktionsname, aber unterschiedliche Parametertypen). Sie benötigen also für unterschiedliche Typen unterschiedliche Funktionen mit unterschiedlichen Funktionsnamen. Das würde so aussehen:

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

Eventuell müsstest du auch auf den korrekten Zeichensatz achten, den du auch bei der return-Klausel angeben kannst.

Und die Lösung mit einer Abfrage, die Sie bereits gegeben haben:

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