SQL的null查询、IFNULL函数、case when then问题{转}

  • Post author:
  • Post category:其他


SQL的null查询、isnull函数、case when then问题和net页面设置问题

1.怎样在一个表中查询指定字段值为null的记录?

最直接想法:select * from 表名 where 字段 = null

测试结果:没有报错,但什么也没有显示出来。

正确答案:select * from 表名 where 字段 is null

2.SQL的IFNULL问题:

使用IFNULL函数,可以使用指定的值替换null

语法如下:ISNULL ( check _ expression , replacement_value )

即:当查询出的check _ expression的值为null时,即使用 replacement_value(比如0之类的)替换掉。

注意:第2个参数是和第1个参数同类型的值类型,不能也是表达式,否则会报错。

3.关于case when then 语句:

举例:case when money is null then 0 else money end

即:当字段money的值为null时,使用0进行表示,否则直接money字段的数值。

MySQL中的ISNULL和IFNULL有区别:

ISNULL只是用来判断是否为空,不能实现替换功能;而IFNULL不仅可以用来判断是否为空,还可以实现替换功能。