zoukankan      html  css  js  c++  java
  • 【转】【转】SQL Select 1 与 Select null 的理解(摘录归纳)

    转载地址:http://www.cnblogs.com/myhsg/archive/2008/08/06/1262292.html

    1.Select 1

    在这里我主要讨论的有以下几个select 语句:

    table表是一个数据表,假设表的行数为10行,以下同。

    1:select 1 from table     

    2:select count(1) from table

    3:select sum(1) from table

    对第一个select语句,我刚开始以为是“1”代表是列名,从2,3种顺推得出得结果:)有点无耻吧。不过通过我自己得观察,这样我觉得是不对的,所以我在SQL SERVER中测试了一下,发现结果如下:

    1:测试结果,得出一个行数和table表行数一样的临时列(暂且这么叫,我也不知道该叫什么),每行的列值是1;

    2:得出一个数,该数是table表的行数;

    3:得出一个数,该数是table表的行数;

    然后我又用“2”测试,结果如下:

    1:得出一个行数和table表行数一样的临时列,每行的列值是2;

    2:得出一个数,该数是table表的行数;

    3:得出一个数,该数是table表的行数×2的数

    然后我又用更大的数测试:

    1:得出一个行数和table表行数一样的临时列,每行的列值是我写在select后的数;

    2:还是得出一个数,该数是table表的行数;

    3:得出一个数,该数是table表的行数×写在select后的数

    综上所述:我发现第一种的写法是增加临时列,每行的列值是写在select后的数;第二种是不管count(a)的a值如何变化,得出的值总是table表的行数;第三种是计算临时列的和。

    2.Select null

    Select null 与Select 1 类似,只不过返回的列值为Null,在与Exists配合使用时,只要有行返回,则Exists子查询仍然为True。和Select 1 不通,Select null 中不可以使用Count 和 SUm 函数。

    null是一个特殊的值,既不是空也不是空格,而是一个不确定的值。
    如下代码
    SELECT   null
    FROM     addresses
    WHERE    address_id = 1
    的意义是在表addresses中有几行满足条件address_id = 1的值就返回几行null值 。

  • 相关阅读:
    一次线上bug引起的反思
    本地调试接口返回信息不对 以及 jar冲突问题
    404问题记录
    Intelij IDEA 配置Tomcat时找不到 “Application Server”
    java多线程处理问题
    DataTemplate和ControlTemplate的关系
    WP模板
    wp中的动画
    wp中的位图
    2013.7.22-7.28开发资料汇总
  • 原文地址:https://www.cnblogs.com/danghuijian/p/4400115.html
Copyright © 2011-2022 走看看