我有如下表:IFNULL并凝聚似乎不工作
SELECT * FROM calls LIMIT 10;
time |number |duration|calltype
2011-02-21 19:06:19|11243243569| NULL|missed
2010-07-12 17:47:14|11234123445| NULL|missed
2010-07-01 20:55:14|11234123459| 52|placed
2010-07-24 22:43:53|12342345662| 363|received
2010-07-22 01:05:25|11234123412| NULL|missed
2010-09-16 00:09:03|14321234231| NULL|missed
2010-10-08 16:31:13|14234234253| NULL|missed
2010-10-05 17:34:28|15534535234| NULL|missed
2010-10-22 04:27:15|16127085031| NULL|missed
2010-10-22 23:46:55|12182308974| NULL|missed
我想是的NULL
持续时间的0
所取代,但IFNULL
似乎并没有工作。
SELECT time,number,IFNULL(duration,0),calltype FROM calls LIMIT 10;
time | number|IFNULL(duration,0)|calltype
2011-02-21 19:06:19|11243243569| NULL|missed
2010-07-12 17:47:14|11234123445| NULL|missed
2010-07-01 20:55:14|11234123459| 52|placed
2010-07-24 22:43:53|12342345662| 363|received
2010-07-22 01:05:25|11234123412| NULL|missed
2010-09-16 00:09:03|14321234231| NULL|missed
2010-10-08 16:31:13|14234234253| NULL|missed
2010-10-05 17:34:28|15534535234| NULL|missed
2010-10-22 04:27:15|16127085031| NULL|missed
2010-10-22 23:46:55|12182308974| NULL|missed
事实上,这个问题,同时试图使用COALESCE()
MAX()
总运营商,发现他们也返回空值出现。
这里可能会发生什么?我如何让聚合忽略NULL和IFNULL
的工作?
更新
的结果列在此使用typeof
命令:
SELECT duration,typeof(duration) as typ FROM calls LIMIT 10;
duration|typ
NULL|text
NULL|text
52|integer
363|integer
NULL|text
NULL|text
NULL|text
NULL|text
NULL|text
NULL|text
我使用SQLite'3.8.2 2013年12月6日14点53分三十〇秒27392118af4c38c5203a04b8013e1afdb1cebd0d' – Richard 2014-12-07 23:00:29
升级到SQLite的'3.8.7.2情节中字20时57分56秒2ab564bf9655b7c7b97ab85cafc8a48329b27f93'没有任何改变。 – Richard 2014-12-07 23:22:30
'SELECT DISTINCT typeof(duration)FROM calls'的输出是什么? – 2014-12-08 08:26:58