sql >> Databasteknik >  >> RDS >> Mysql

Mysql-funktion för att transformera icke-nullvärden

Tyvärr finns det ingen funktion för ditt beteende, men det är enkelt att skapa din egen funktion om du har behörighet för det, annars kan du också lägga till en IF THEN ELSE på din fråga som du redan visade men det skulle inte vara något svar på din fråga. Om du vill skapa en funktion så får du problemet att du behöver explicita parametertyper och med mysql är det tyvärr inte heller funktionellt att överbelasta en funktion (samma funktionsnamn men olika parametertyper). Så du behöver för olika typer olika funktioner med olika funktionsnamn. Det skulle se ut så här:

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

Du skulle kanske också behöva ta hand om rätt teckenuppsättning som du också kan specificera i returklausulen.

Och lösningen med en fråga du redan gav:

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



  1. Välj att alla poster inte uppfyller vissa villkor i en sammanfogad tabell

  2. Hur CONV() fungerar i MariaDB

  3. Hur man tar bort ett databaspostkonto från en profil i SQL Server (T-SQL)

  4. Hur man små bokstäver objekt i Oracle databas?