——随机抽取5条记录:
select * from (select * from qotest order by dbms_random.random) where rownum<=5
select * from qotest sample(10) where rownum<=5
select * from 表名 sample(10) 别名 where rownum<=5 and 列名 in (值1,值2)
——随机抽取10%条记录(能随机抽取,但不知道为什么每次抽取的记录数都是多余或者小于10%):
select * from qotest sample(10)
参考资料:oracle随机抽取记录的方法
2.关于时间函数
——24小时的形式显示出来要用HH24;12进制表示法用HH、HH12
select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual;
select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss') from dual;
——其它:
select to_char(sysdate,'hh24') as nowHour from dual
insert into emp(empno,hiredate) values(8000,to_date('2004-10-10','yyyy-mm-dd'));
select 1, TO_DATE(null) from dual;(时间为null)
参考资料:ORACLE日期时间函数大全
3.空值的处理
——查询字段中空值记录数
select count(*) from qotest where value1 is null
——将空值转换为实际值(数据格式可以是日期、字符、数字;数据类型要匹配)
select nvl(value1,0)from qotest
select avg(nvl(value1,0)) from qotest
select nvl2(value1,100,0) from qotest (value1非空,返回100;value1为空值,返回0)
4.抽取前N条记录
select * from huanggm.db2aaa fetch first 3 rows only ——db2语法
select * from qotest where rownum<=3 ——oacle语法
select top 3 * from sms_info_sqlserer ——sql server语法