sql >> Database >  >> RDS >> Mysql

Mysql-functie om niet-null-waarden te transformeren

Helaas is er geen functie voor uw gedrag, maar het is eenvoudig om uw eigen functie te maken als u daarvoor de machtigingen heeft, anders zou u ook een IF THEN ELSE kunnen toevoegen op uw vraag zoals u al liet zien, maar dat zou geen antwoord zijn op uw vraag. Als je een functie wilt maken dan heb je het probleem dat je expliciete parametertypes nodig hebt en met mysql is het helaas ook niet functioneel om een ​​functie te overbelasten (dezelfde functienaam maar verschillende parametertypes). Je hebt dus voor verschillende typen verschillende functies met verschillende functienamen nodig. Het zou er zo uitzien:

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

Je zou misschien ook moeten zorgen voor de juiste karakterset die je ook kunt specificeren bij de retourclausule.

En de oplossing met een vraag die je al hebt gegeven:

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



  1. MySQL en controlebeperkingen

  2. Grootte van VARBINARY-veld in SQL Server 2005

  3. Tabel-ID-veld verhogen met bitsgewijze telling

  4. PostGIS:Vraag z- en m-dimensies (linestringzm)