关闭

关于dual表的一些资料

439人阅读 评论(0) 收藏 举报

经常看到别人的存储过程中有select …………from dual;

那么DUAL表是什么表呢?及作用又是做什么的?

现在做个小结:

 


为了SQL语意完整而已

select sysdate from dual

相当与Sql Server的

set @Date=getdate()

dual是Oracle与数据字典一起自动创建的一個表﹐它只有一列﹕DUMMY﹐其数据类型為﹕VARCHAR2(1)。dual中只有一行数据﹕'X'。dual属于sys模式﹐但所有用户都可以使用dual名称访问它﹐用SELECT計算常量表达式﹑伪列等值時常用该表﹐因为它只返回一行数据﹐而使用其它表時可能返回多个数据行。

在查询语句中产生临时计算数据的,一个帮助查询语句产生计算结果的临时表

在Oracle数据库内有一种特殊的表Dual。Dual表是Oracle中的一个实际存在的表任何用户均可读取,常用在没有目标表的Select中。Dual表由Oracle连同数据字典一同创建,所有的用户都可以用名称DUAL访问该表。这个表里只有一列DUMMY,该列定义为VARCHAR2(1)类型,有一行值X。从DUAL表选择数据常被用来通过SELECT语句计算常数表达式,由于DUAL只有一行数据,所以常数只返回一次。

Oracle下的DUAL查询如下所示:
SELECT ‘x’ FROM dual
而对等的SQL Server查询则是下面这个样子:
SELECT ‘x’

以下是null相关的知识,用到了dual:
SQL> select 1 from dual where null=null;
没有查到记录
SQL> select 1 from dual where null='';
没有查到记录
SQL> select 1 from dual where ''='';
没有查到记录
SQL> select 1 from dual where null is null;
1
---------
1
SQL> select 1 from dual where nvl(null,0)=nvl(null,0);
1
---------
1
查看当前连接用户
SQL> select user from dual;

查看当前日期、时间
SQL> select sysdate from dual;

 
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:119542次
    • 积分:1911
    • 等级:
    • 排名:千里之外
    • 原创:54篇
    • 转载:71篇
    • 译文:0篇
    • 评论:9条
    文章分类
    最新评论