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

Mysql-funktion til at transformere ikke-nullværdier

Desværre er der ingen funktion til din adfærd, men det er nemt at oprette din egen funktion, hvis du har tilladelserne til det, ellers kan du også tilføje en IF THEN ELSE på din forespørgsel, som du allerede har vist, men det ville ikke være noget svar på dit spørgsmål. Hvis du vil oprette en funktion så vil du have det problem at du har brug for eksplicitte parametertyper og med mysql er det desværre heller ikke funktionelt at overbelaste en funktion (samme funktionsnavn men forskellige parametertyper). Så du har brug for forskellige typer forskellige funktioner med forskellige funktionsnavne. Det ville se sådan ud:

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

Du skal måske også sørge for det korrekte tegnsæt, som du også kan angive i returneringsklausulen.

Og løsningen med en forespørgsel, du allerede har givet:

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



  1. CodeIgniter med Active Records og or_like

  2. Hvordan undslipper man? (spørgsmålstegn) operatør for at forespørge Postgresql JSONB-type i Rails

  3. Arbejde med datoer i PostgreSQL

  4. .Net Connection Pooling MySQL midlertidig tabel