22 votes

Remplacez les valeurs nulles dans sql en utilisant l'instruction select dans mysql ?

Comment faire cela? Quelle requête peut être écrite en utilisant select statement où tous les nulls doivent être remplacés par 123?

Je sais que nous pouvons le faire en utilisant, update tablename set fieldname = "123" where fieldname is null;

mais nous ne pouvons pas le faire en utilisant select statement.

52voto

RedFilter Points 84190

Vous avez plusieurs options pour substituer les valeurs NULL en MySQL:

CASE

select case 
    when fieldname is null then '123' 
    else fieldname end as fieldname 
from tablename 

COALESCE

select coalesce(fieldname, '123') as fieldname 
from tablename 

IFNULL

select ifnull(fieldname, '123') as fieldname 
from tablename

6voto

Dave Halter Points 3204

Il y a une déclaration appelée IFNULL, qui prend toutes les valeurs d'entrée et renvoie la première valeur non NULL.

exemple:

sélectionner IFNULL(colonne, 1) DE table;

http://dev.mysql.com/doc/refman/5.0/fr/control-flow-functions.html#function_ifnull

2voto

LesterDove Points 2419

Je pense que vous cherchez la fonction IFNULL IFNULL(champ, 0) renverra un 0 lorsque le champ retourne null

0voto

Exupery Points 3070

Une instruction UPDATE est nécessaire pour mettre à jour des données dans une table. Vous ne pouvez pas utiliser l'instruction SELECT pour le faire.

0voto

anand krish Points 2304
select NVL(columnname, '#') as columnName from tableName
select NVL(email, '%') as email, NVL(city, '%') AS city FROM Account

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X