2011-11-20 99 views
0

我正在导出SELECT result to CSV via INTO OUTFILE。我有一系列简单的SQL字符串函数用于格式化数据。例如:CONCAT('$',FORMAT(property.price,2))。如果值为NULL,我想返回一个空字符串,但我不确定如何同时执行这两个操作。MySQL格式化字符串或返回空字符串NULL

另外我想知道最简单的方法取TinyInt值0或1并返回“是”或“否”。

回答

1

对于TINYINT可以用IF操作

select if(tinyint_value,'yes','no') 

的第一部分,你也可以,如果运营商在空...`将无法正常工作使用

select if(property.price is not null, CONCAT('$',FORMAT(property.price,2)),'') 
+0

谢谢!看起来很简单。 – christian

1

要取决于您可以使用情况下,所以列的他返回值yesno或空字符串:

select case column when 1 then 'Yes' else 'No' end as columalias , 
     case when stringcolumn is NULL then '' else stringcolumn end as stringcolumn 
from table 

select case column when 1 then 'Yes' else 'No' end as columalias , 
     IFNULL(stringcolumn,'') as stringcolumn 
from table 
+0

'情况stringcolumn。它应该是'case当字符串是NULL然后...'。 – a1ex07

+0

@ a1ex07:谢谢,修正。 – Icarus

+0

谢谢,使用如果是一点更简化,我在做什么,但我可以看到这可以是有用的 – christian

0

可以使用coalesce()功能。它返回不是NULL的第一个参数。

SELECT COALESCE(NULL, 1); 
-> 1 
SELECT COALESCE(2, 1); 
-> 2