Dual简单的说就是一个空表,Oracle提供的最小的工作表,只有一行一列,具有某些特殊功用。常用来通过select语句计算常数表达式。
sql标准格式
select * from 表
当全用子查询的数据时
SELECT
( SELECT count( 1 ) FROM xx WHERE xxxxxx ) t1,
( SELECT sum( b ) FROM xxx WHERE xxxxx ) t2
FROM
dual
全用的子查询查出了结果 ,最后不需要from表了,就必须用伪表dual来满足格式需要了
注意:
t1,t2都只能返回一个字段
t2 返回两个字段时,会报错(如):
SELECT
( SELECT count( 1 ) FROM xx WHERE xxxxxx ) t1,
( SELECT sum( b ), sum( c ) FROM xxx WHERE xxxxx ) t2
FROM
dual
几个小用法:
--1.获取系统时间
select sysdate from dual;
--2.做运算
select 99*99 from dual;
--3.获取随机数
select DBMS_RANDOM.random from dual;