2010-08-20 27 views

Odpowiedz

43

Tak, za pomocą COALESCE.

SELECT COALESCE(null_column, 0) AS null_column FROM whatever;

COALESCE przechodzi przez listę wartości dajesz go i zwraca pierwszą wartość niezerową.

+3

+1: 'COALESCE' to ANSI, obsługiwane przez SQL Server 2000+, Oracle 9i +, MySQL 4.1+, dunno wersja PostgreSQL lub SQLite ... –

+1

MySQL jest wymieniony w tytule. Dodałem do tego znacznik. – RedFilter

+1

Myślę, że każdy DB 3VL z interfejsem SQL obsługuje 'coalesce()'. Przypadek i punkt, [był w MySQL 3.23] (http://www.norrnod.se/norrnod/dokumentation/mysql/3.23.45/manual_toc.html#Comparison_Operators), który jest tak blisko dna beczki, jak możesz dostać. –

4

Istnieje metoda COALESCE który zwróci pierwszy niezerowym parametr, w przypadku:

COALESCE(field, 0) 

Ale można to wykorzystać, jeśli chcesz więcej:

COALESCE(field1, field2, 0) 
2

MySQL:

SELECT COALESCE(Mycolumn, 0); 
33

dodaję tę odpowiedź, ponieważ nikt nie wspomniał IFNULL funkcja

Można użyć IFNULL

SELECT IFNULL(column_name, 0) FROM table_name; 

IFNULL zwróci wartość kolumny (jeśli ma coś innego niż NULL), w przeciwnym razie drugi parametr przeszedł (w tym przypadku 0).

+0

Dzięki, działa idealnie w mysql. – iarroyo

Powiązane problemy