大牛?无他,唯手熟尔!

mysql使用case when 处理int型字段时显示出如00000000001这样的数据

2015-01-02 20:17:36来源:caogenjava阅读[681]评论[0]
摘要:场景:mysql数据库,在一张表中有一个int型字段,这个字段的数据有为null的,查询的时候想将这些为null的数据显示为0

本文由草根java提供,转载请注明出处https://www.caogenjava.com/detail/3.html

    场景:mysql数据库,在一张表中有一个int型字段,这个字段的数据有为null的,查询的时候想将这些为null的数据显示为0

    刚开始我是这么写的sql:

               select 

                     id,

                    case when

                    read_num is null then '0' else read_num end as read_num

              from  XXX

    查询后,那些为null的数据的确显示为0了,但是那些不为null的的都成了00000000001这样的数据,郁闷之极啊。

    仔细看了下sql,发现问题了,就是那个then '0',我加了'',硬生生的把它转换成了字符型,因为这个字段是int型的,所以直接写成then 0 就可以了,再加上'',就是画蛇添足了。

 


除非注明,文章均为草根java原创,转载请注明本文地址: https://www.caogenjava.com/detail/3.html

上一篇:程序员问问题的艺术       
网友评论,共0 发表评论
昵称:
评论:
验证码: 刷新验证码