mysql select string,MySql查询在select中用空stringreplaceNULL

MySql查询在select中用空stringreplaceNULL

你如何用空stringreplaceselect中的NULL值? 输出“NULL”值看起来不太专业。

这是非常不寻常的,基于我的语法,我期望它的工作。 希望解释为什么它没有。

select CASE prereq WHEN (prereq IS NULL) THEN " " ELSE prereq end from test;

什么样的原始表看起来像什么,我想要什么,以及什么样的实际打印:

original wanted what actually prints -------- ------ --------------------- value1 value1 NULL NULL value2 value2 NULL NULL

正如你所看到的,它与我想要的是相反的,因此我尝试翻转IS NULL到IS NOT NULL,当然那没有修复它,也尝试交换case,哪个没有工作的位置。

编辑:看来下面给出的三个解决scheme都做这个任务。 问候

select if(prereq IS NULL ," ",prereq ) from test select IFNULL(prereq,"") from test select coalesce(prereq, '') from test

如果你真的必须输出每个值,包括NULL值:

select IFNULL(prereq,"") from test

SELECT COALESCE(prereq, '') FROM test

合并将从左向右返回传递给它的第一个非空参数。 如果所有的参数都是null,它将返回null,但是我们在那里强制一个空string,所以不会返回空值。

另请注意,标准SQL支持COALESCE运算符。 这不是IFNULL的情况。 所以使用前者是一个好习惯。 此外,请记住,COALESCE支持2个以上的参数,并且会迭代它们直到find非空符合。

尝试下面;

select if(prereq IS NULL ," ",prereq ) from test

原来的forms几乎是完美的,你只需要在CASE之后省略prereq :

SELECT CASE WHEN prereq IS NULL THEN ' ' ELSE prereq END AS prereq FROM test;

其中一些build立在function应该工作:

Coalesce Is Null IfNull

试试COALESCE 。 它返回第一个非NULL值。

SELECT COALESCE(`prereq`, ' ') FROM `test`

试试这个,这个也应该摆脱那些空行:

SELECT prereq FROM test WHERE prereq IS NOT NULL;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值