一直对oracle中dual表耿耿于怀,不能揭开她的真正面纱。
    下面将自己对dual的一点理解写出来,欢迎大虾指点迷津。
    我执行语句:select count(1+1),count(3+2),count(DUMMY),count(*) from dual  得到结果: 
     由这条语句,我得出我的思考结果:     1. dual表是怎样的表?      一张有表名为dual,设置了一个固定列(DUMMY)的表,可以任意增加临时column的表。
     上图中很明显,COUNT(DUMMY)列是固定列,而COUNT(1+1)列和COUNT(1+2)列是临时增加列。因此得出1中的结论,欢迎大虾指教。     2. 设计dual的意义?      为了满足数据库数据处理过程中的逻辑运算、查询系统信息,让这些查询语句符合sql规范而设计的一个特殊的表。     可以查询一个逻辑运算,如:select 1+1 from dual;也可以查询系统中的信息,如:select sysdate from dual等;为了让这些语句符合sql语句规范,如:要查询当然用户,难不成用select user(如果允许这样语句,那么将天下大乱)     

解决方案 »

  1.   

    符合sql规范而设计的一个特殊的表。

    就是这句话
      

  2.   

    sqlserver中
    取得当前时间:
    SELECT getdate()
    这就是它的语法,不会什么天下大乱的……
      

  3.   

    Dual表是数据库数据数据字典中的一个小表,用户写的应用程序可以引用该表确保得到一个结果。
    当一个值必需要被返回一次时,dual表非常有用,例:当时系统日期和时间。
    Dual表有一个列为dummy,和一行,它的值为X。
      

  4.   

    应该就是为了可以执行类似:select sysdate from dual;这类的语句搞的。
      

  5.   

    还有这种语句啊,SELECT getdate()。咕噜寡闻了
      

  6.   

    你说的这些是 dual表是什么?
    我还有点疑惑的是为什么要这样设计一张 dual表,难道就是为了符合sql语句规范?
      

  7.   

    http://www.itpub.net/forum.php?mod=viewthread&tid=1542891&highlight=dual%B1%ED%D7%DC%BD%E1看看这个吧