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;
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐