2010-08-20 50 views

Trả lời

43

Vâng, bằng cách sử dụng COALESCE.

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

COALESCE xem qua danh sách giá trị bạn cung cấp và trả về giá trị không null đầu tiên.

+3

+1: 'COALESCE' là ANSI, được hỗ trợ bởi SQL Server 2000+, Oracle 9i +, MySQL 4.1+, dunno phiên bản của PostgreSQL hoặc SQLite ... –

+1

MySQL được đề cập trong tiêu đề. Tôi đã thêm một thẻ cho nó. – RedFilter

+1

Tôi nghĩ rằng mỗi 3VL DB với một giao diện SQL hỗ trợ 'coalesce()'. Trường hợp và điểm, [đó là trong MySQL 3.23] (http://www.norrnod.se/norrnod/dokumentation/mysql/3.23.45/manual_toc.html#Comparison_Operators) mà là gần như dưới cùng của thùng như bạn có thể làm được. –

4

Có là COALESCE phương pháp mà trả lại thông số không null đầu tiên, trong trường hợp của bạn:

COALESCE(field, 0) 

Nhưng bạn có thể sử dụng điều này nếu bạn muốn biết thêm:

COALESCE(field1, field2, 0) 
2

MySQL:

SELECT COALESCE(Mycolumn, 0); 
33

tôi thêm câu trả lời này vì không ai đề cập IFNULL chức năng

Bạn có thể sử dụng IFNULL

SELECT IFNULL(column_name, 0) FROM table_name; 

IFNULL sẽ trở lại giá trị cột (nếu nó có một thứ khác không phải là NULL) nếu không tham số thứ hai đã qua (trong trường hợp này là 0).

+0

Cảm ơn, chạy hoàn hảo trong mysql. – iarroyo

Các vấn đề liên quan