Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Funkcja Mysql do przekształcania wartości innych niż null

Niestety nie ma funkcji dla twojego zachowania, ale łatwo jest stworzyć własną funkcję, jeśli masz do tego uprawnienia, w przeciwnym razie możesz również dodać IF THEN ELSE na twoje zapytanie, jak już pokazałeś, ale to nie byłaby odpowiedź na twoje pytanie. Jeśli chcesz utworzyć funkcję, będziesz miał problem, że potrzebujesz wyraźnych typów parametrów, a mysql niestety nie działa również przeciążanie funkcji (ta sama nazwa funkcji, ale różne typy parametrów). Potrzebujesz więc dla różnych typów różnych funkcji z różnymi nazwami funkcji. Wyglądałoby to tak:

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

Być może będziesz musiał również zadbać o poprawny zestaw znaków, który możesz również określić w klauzuli return.

A rozwiązanie z zapytaniem, które już podałeś:

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. czy możemy uniknąć elokwentnego w dużej ilości rekordów?

  2. Najszybszy postgreSQL odpowiednik MySQL UTC_DATE() (pobieranie daty UTC)?

  3. Sortowanie wartości null na końcu

  4. zapytanie wordpress - kolejne dwa zdarzenia według daty metadanych

  5. Pojedyncze zatwierdzenie podczas importowania bardzo dużych plików SQL (MySQL)