mysql ifnull和coalesce为null字符串似乎是stringyfy数字,他们不对齐

时间:2016-11-16 09:45:57

标签: mysql

我有一个选择输出以下列

| NULL |
| NULL |
| 1200 |
|   47 |

我想用空字符串去除NULL。我尝试过COALESCE(col,'')和IFNULL(col,'')。然后,这些似乎与数字串联,并且失去了数字的正确对齐,我得到了

|      |
|      |
| 1200 |
| 47   |

显然,将0替换为空字符串会将col保留为数字。是否有一种简单的方法来获得我需要的东西,即

|      |
|      |
| 1200 |
|   47 |

我知道会有一种令人费解的格式化方式来做到这一点但是我错过了一个简单的技巧来实现这个目标吗?

谢谢,安迪。

2 个答案:

答案 0 :(得分:0)

首先,我们需要知道您的确切关注点。

这是纯粹的视觉效果吗?

使用LPAD()将一些空格用于对齐。

是数据类型吗?

说"如果该字段为NULL,请输入''代替"你隐式地将列强制转换为字符串。如果该字段是数字,您可以将NULL转换为0,然后将该列作为数字。问题是,每列不能有不同的数据类型。要么都是字符串,要么是所有数字,......

答案 1 :(得分:0)

只需使用WHERE

即可
.. WHERE col IS NOT NULL