2010-08-20 3 views

Répondre

43

Oui, en utilisant COALESCE. COALESCE parcourt la liste des valeurs que vous lui donnez et renvoie la première valeur non nulle.

+3

+1: 'COALESCE' est ANSI, pris en charge par SQL Server 2000+, Oracle 9i +, MySQL 4.1+, pas la version de PostgreSQL ou SQLite ... –

+1

MySQL est mentionné dans le titre. J'ai ajouté une étiquette pour cela. – RedFilter

+1

Je pense que chaque DB 3VL avec une interface SQL supporte 'coalesce()'. Cas et point, [c'était en MySQL 3.23] (http://www.norrnod.se/norrnod/dokumentation/mysql/3.23.45/manual_toc.html#Comparison_Operators) qui est à peu près aussi proche du fond du canon que Tu peux recevoir. –

4

Il y a la méthode COALESCE qui renvoie le premier paramètre non nul, dans votre cas:

COALESCE(field, 0) 

Mais vous pouvez utiliser si vous voulez plus:

COALESCE(field1, field2, 0) 
2

MySQL:

SELECT COALESCE(Mycolumn, 0); 
33

J'ajoute cette réponse parce que personne ne mentionne IFNULL fonction

Vous pouvez utiliser IFNULL

SELECT IFNULL(column_name, 0) FROM table_name; 

IFNULL retourne la valeur de la colonne (si elle a autre chose que NULL) sinon second paramètre passé (dans ce cas 0).

+0

Merci, courez parfait dans mysql. – iarroyo