oracle常用sql语句(初稿待整理)

2011-04-20  黄桂梅 

1.随机抽取记录
——随机抽取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)

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)

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语法



374°/3739 人阅读/1 条评论 发表评论

辜顺利  2011-05-04

那么多数据库,哎,头大中,只搞一个是一件幸福的事情。


登录 后发表评论