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个以内

  • 相关阅读:
    des和Rijndael加密
    信息熵
    逻辑回归简单多变不易把握、特征离散化原因、最大熵模型
    特征选择
    数据清洗
    海塞矩阵、黄金分割、牛顿法、下降迭代法
    BP算法推导python实现
    分布函数,概率,离散,连续
    损失函数coding
    leetcode中二分查找的具体应用
  • 原文地址:https://www.cnblogs.com/loveMis/p/11083077.html
Copyright © 2011-2022 走看看