2012-09-25 79 views
1

我试图从我的数据库中获取DOUBLE类型值以用于报表。如果这个值是NULL,那么报告应该说明"N/A"MySQL只将double转换为varchar

我只是有一些困难与SQL,使这项工作:

SELECT CAST(IFNULL(billablerate, 'N/A'), CHAR(5)) AS billablerate FROM rates 

有个声音告诉我,这些功能不能像这样的组合,但我不知道该怎么弄他们都在。

任何援助将是伟大的!

回答

1

试试这个:

SELECT IFNULL(CAST(billablerate AS char (5)), 'N/A') AS billablerate FROM rates 

作品:

SELECT IFNULL(CAST(null AS char (5)), 'N/A') AS exp; // N/A 
SELECT IFNULL(CAST(10 AS char (5)), 'N/A') AS exp; // 10 
0

我怀疑它导致你麻烦的功能顺序。

尝试:

SELECT IF(billablerate IS NULL, 'N/A', CONVERT(billablerate, CHAR(5))) as billablerate FROM rates 
0

原来在我的指挥错误是语法,见下图:

我的原始代码:

SELECT CAST(IFNULL(billablerate, 'N/A'), CHAR(5)) AS billablerate FROM rates 

的修复:

SELECT CAST(IFNULL(billablerate, 'N/A') AS CHAR(5)) AS billablerate FROM rates