Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Função Mysql para transformar valores não nulos


Infelizmente, não há função para seu comportamento, mas é simples criar sua própria função se você tiver as permissões para isso, caso contrário, você também pode adicionar um IF THEN ELSE à sua consulta, como você já mostrou, mas isso não seria uma resposta para sua pergunta. Se você quiser criar uma função, terá o problema de precisar de tipos de parâmetros explícitos e, com o mysql, infelizmente também não é funcional sobrecarregar uma função (mesmo nome de função, mas tipos de parâmetros diferentes). Então você precisa para diferentes tipos de funções diferentes com nomes de função diferentes. Ficaria assim:
    CREATE FUNCTION `fmap_varchar`(e1 VARCHAR(255), e2 VARCHAR(255) )
    RETURNS VARCHAR(255) DETERMINISTIC
    RETURN IF(e1 IS NULL, NULL, e2);

Talvez você também tenha que cuidar do conjunto de caracteres correto, que também pode ser especificado na cláusula de retorno.

E a solução com uma query que você já deu:
    SELECT IF(something IS NULL, NULL, anotherthing) FROM your_table;