views:

35

answers:

1

Hello.

How can I cast something that returns NULL to 0?

If this is my query: select col from table; would this be the right way to do it: select cast(col as unsigned integer) from table;?

Thank you.

+7  A: 

You'd probably want to use the COALESCE() function:

SELECT COALESCE(col, 0) FROM `table`;

COALESCE() returns the first non-NULL value in the list, or NULL if there are no non-NULL values.

Test case:

CREATE TABLE `table` (id int, col int);

INSERT INTO `table` VALUES (1, 100);
INSERT INTO `table` VALUES (2, NULL);
INSERT INTO `table` VALUES (3, 300);
INSERT INTO `table` VALUES (4, NULL);

Result:

+------------------+
| COALESCE(col, 0) |
+------------------+
|              100 |
|                0 |
|              300 |
|                0 |
+------------------+
4 rows in set (0.00 sec)
Daniel Vassallo
Thank you, Daniel!
Francisc