函数的格式如下:
select * from T1 where exists(select 1 from T2 where T1.a=T2.a);
含义如下:
EXISTS用于检查子查询是否返回至少一行数据,该子查询实际上并不返回任何数据,而是返回true和false。
注意事项:
T1数据量小而T2数据量非常大时,查询效率高。
反之用:
select * from T1 where T1.a in (select T2.a from T2);
效率高
TRUNC()
针对数字的案例,如:
select trunc(123.458) from dual --123
select trunc(123.458,0) from dual --123
select trunc(123.458,1) from dual --123.4
select trunc(123.458,-1) from dual --120
select trunc(123.458,-4) from dual --0
select trunc(123.458,4) from dual --123.458
select trunc(123) from dual --123
select trunc(123,1) from dual --123
select trunc(123,-1) from dual --120
针对日期的案例,如:
select trunc(sysdate) from dual --2017/6/13 返回当天的日期
select trunc(sysdate,'yyyy') from dual --2017/1/1 返回当年第一天.
select trunc(sysdate,'mm') from dual --2017/6/1 返回当月第一天.
select trunc(sysdate,'d') from dual --2017/6/11 返回当前星期的第一天(以周日为第一天).
select trunc(sysdate,'dd') from dual --2017/6/13 返回当前年月日
select trunc(sysdate,'hh') from dual --2017/6/1313:00:00 返回当前小时
select trunc(sysdate,'mi') from dual --2017/6/1313:06:00 返回当前分钟