zoukankan      html  css  js  c++  java
  • SQL语句注意得问题

    1/不要使用count(列明)或count(常量)来替代count(*),count(*)是SQL92定义得标准统计行数得语法,跟数据库无关,跟NULL和非NULL无关。

    说明:count(*)会统计值为NULL得行,而count(列名)不会统计此列为NULL值得行

    2/count(distinct col) 计算该列除NULL之外得不重复行数,注意 count(distinct cols,col2) 如果其中一列全为NULL,那么即使另一列有不同的值,也返回为0.

    3/当某一列的值全是NULL时,count(col)的返回结果为0,但sum(col)的返回结果为NULL,因此使用sum()时需要注意NPE(空指针异常)问题

    正例:可以使用如下方式来避免sum的NPE问题:

    select if(isnull(sum(g)),0,sum(g)) from table

    4/使用isnull()来判断是否为NULL值。

    说明:NULL与任何值的直接比较都为NULL

    1)NULL<>NULL的返回结果是NULL,而不是false

    2)NULL= NULL的返回结果是NULL,而不是true

    3)NULL<>的返回结果是NULL,而不是true

    5/在代码中写分页查询逻辑时,若count为0应直接返回,避免执行后面的分页语句

    6/in操作能避免则避免,若实在避免不了,需要仔细评估in后边的集合元素数量,控制在1000个以内

  • 相关阅读:
    单个 js 文件禁用 ESLint 语法校验
    meta标签整合
    安装es6编译babel
    JSON.parse()和JSON.stringify()的区别
    preventDefault()、stopPropagation()、return false 的区别
    excel 表格内容读取
    redis 小例
    多文件打包下载
    随笔
    js数组删除元素
  • 原文地址:https://www.cnblogs.com/loveMis/p/11083077.html
Copyright © 2011-2022 走看看