根据业务流程去查询某个数据表的某个字段的最大值

直接用的select max(code) from base_area;

大多数情况没有问题,有个特殊点:如果数据表里边没有数据,且返回类型时int时,就会报类型转换错误,因为null没法转成int,所以就用到了isnull函数进行转换。

修改后:

1.sqlserver :select isnull(max(code),0) from base_area;

意思是,当没查到数据返回null时,返回0,这样就不报错了。

但这是在sqlserver数据库中用的函数。

在写同样逻辑,在mysql中时报错了,不存在isnull函数,百度一波,要使用ifnull函数来使用,换完之后就可以了,和之前的效果相同。

2.mysql:select ifnull(max(code),0) from base_area;

如果是oracle数据库,就不同了,可以使用以下函数实现相同效果

NVL(Expr1,Expr2)如果Expr1为NULL,返回Expr2的值,否则返回Expr1的值

3.oracle: select nvl(max(code),0) from base_area;

相关文章:

  • 2021-08-01
  • 2022-12-23
  • 2022-12-23
  • 2021-11-23
  • 2021-07-21
  • 2021-08-31
  • 2021-12-03
猜你喜欢
  • 2022-12-23
  • 2021-12-20
  • 2021-08-18
  • 2021-05-20
  • 2021-08-27
  • 2021-11-23
相关资源
相似解决方案