ORACLE常见查询语句

1.查询人员表所有数据

select * from sys_user;

2.查询人名(su_name)为李x的所有信息

select * from sys_user where su_name='李x'

3.查询人名(su_name)为李x的登录账号(su_login_code)

select su_login_code from sys_user where su_name='李凯'

4.查询性别(su_sex)为0或为null的人员信息

select * from sys_user where su_sex=0;(为0的人员)
select * from sys_user where su_sex=1;(为1的人员)
select * from sys_user where su_sex is null;(为空值的人员)
select * from sys_user where nvl(su_sex,0)=0;(为0或为null的人员)
select * from sys_user where nvl(su_sex,0)=1;(为1的人员)
select * from sys_user where nvl(su_sex,1)=0;(为0的人员)
select * from sys_user where nvl(su_sex,1)=1;(为1或为null的人员)

nvl(su_sex,0);此表示su_sex字段值为空时,返回值为0,不为空时返回原值
where nvl(su_sex,0)=0;此表示将查找nvl(su_sex,0)的返回值等于0时的行

5.查询最后登录日期(SU_LAST_LOGIN_TIME)在2019-7-1到2019-7-11之间的人员信息

select * from sys_user where SU_LAST_LOGIN_TIME between to_date('2019-7-1','YYYY-MM-DD') and to_date('2019-7-11','YYYY-MM-DD'); 
 (语句中为单引号;此结果默认不包含2019年7月11日最后一天的信息,如需要可改为12日)

select * from sys_user where SU_LAST_LOGIN_TIME between to_date('1/7月/2019') and to_date('11/7月/2019');(语句中的日期格式为固定格式,不是数据表中的日期格式)

或查找到详细的时间点

 select * from sys_user where SU_LAST_LOGIN_TIME between to_date('2019-7-4 17:10:00','YYYY-MM-DD hh24:mi:ss') and to_date('2019-7-11 19:00:00','YYYY-MM-DD hh24:mi:ss');

6.查询所有账号长度大于5的员工的姓名,账号,性别。 (也可使用>=,或<=,或=)

select su_name,su_login_code,su_sex from sys_user where length(su_login_code)>5;

7.查询杨xx创建的党委会和徐xx主持的董事会的详细信息

select * from tiol_meeting where (gg_create_user='杨xx' and meeting_type_name='党委会') or(moderator_name='徐xx' and meeting_type_name='董事会');
(括号内为交集,两个括号之间为并集)

8.查询会议名称中有“测试”或者有“test”的详细会议信息

select * from tiol_meeting where meeting_name like '%测试%' or meeting_name like '%test%';

9.查询所有党委会的创建者

select gg_create_user from tiol_meeting where meeting_type_name='党委会';

10.查询性别代码(su_sex)大于序号(gg_sort)的人员信息

select * from sys_user where su_sex>gg_sort;
或将su_sex栏空值赋值为0,也参与比较。
select * from sys_user where nvl(su_sex,0)>gg_sort;

11.查看创建时间为7月的人员信息

select * from sys_user where to_char(gg_create_datetime,'mm')='07';

to_char 为转换函数。将日期转换成指定格式的字符串,非日期类型不可直接转换
日期:年yyyy月mm日dd
时间:时hh hh24分mi秒ss
数字:任意数字9,货币L

12.查看会议日期为2018的所有会议信息

select * from tiol_meeting where to_char(to_date(MEETING_TIME,'yyyy-mm-dd'),'yyyy')='2018';

to_date(MEETING_TIME,‘yyyy-mm-dd’)将非日期类型转换成日期类型
因为此处最终要使用字符串类型,以便选取其中的年份,但数据库中此栏位不是日期类型,不能直接用to_char,因此使用两次转换,实际工作中可能不需要

select to_char(to_date(MEETING_TIME,'yyyy-mm-dd'),'yyyy') from tiol_meeting;   

也可用此方式自定义日期的显示格式

另,to_number 将字符串转换成数字

13.查看2018年录入的会议信息(此gg_create_datetime字段格式需为date)

select * from tiol_meeting where to_char(gg_create_datetime,'yyyy')=2018;

14.查看每一年12月录入的会议信息(此gg_create_datetime字段格式需为date)

select * from tiol_meeting where to_char(gg_create_datetime,'mm')=12;

15.查看每一年当前月录入的会议信息(此gg_create_datetime字段格式需为date)

select * from tiol_meeting where to_char(gg_create_datetime,'mm')=to_char(sysdate,'mm');

16.查看每一年当前月6个月以后录入的会议信息(此gg_create_datetime字段格式需为date)

select * from tiol_meeting where to_char(gg_create_datetime,'mm')=to_char(add_months(sysdate,+6),'mm');

add_months(sysdate,+6)为6个月后,也可用-号,表示前多少月。满12会循环。

17.查看在两个日期之间录入的会议信息(此gg_create_datetime字段格式需为date)

select * from tiol_meeting where to_char(gg_create_datetime,'yyyy-mm-dd') between '2018-06-01' and '2018-12-31';

18.查看2019年各个月录入的会议个数

select count(*),trunc(gg_create_datetime,'month') from tiol_meeting where to_char(gg_create_datetime,'yyyy')='2019' group by trunc(gg_create_datetime,'month');

参考文档:

https://www.cnblogs.com/yw0219/p/5789664.html
https://www.cnblogs.com/garyzhuang/p/9670411.html

19.查看各个会议类型的平均序号

select meeting_type_name,avg(nvl(serial_number,0)) from tiol_meeting group by meeting_type_name;

可去多列和的平均值(如serial_number列与oper_type列)

select meeting_type_name,sum(nvl(serial_number,0)+nvl(oper_type,0))/count(*) from tiol_meeting group by meeting_type_name;

20.查看各个会议类型(meeting_type_name)的最小序号(serial_number)

select meeting_type_name,min(nvl(serial_number,0)) from tiol_meeting group by meeting_type_name;

21.按照会议时间由新到旧排列会议信息

select * from tiol_meeting order by meeting_time desc;

22.查询sys_user表gg_sort列中,值相同的项

 select * from sys_user where gg_sort in (select gg_sort from sys_user group by gg_sort having count(gg_sort)>1);

23.查询比lik序号大(gg_sort)大的人员信息

 select gg_sort from sys_user where su_login_code='lik';
 select su_name,su_login_code,gg_sort from sys_user where gg_sort>111;

24.查询sys_user表gg_sort列中,大于平均值且为男性的详细信息

select * from sys_user where gg_sort>(select avg(nvl(gg_sort,0)) from sys_user) and su_sex=1;

25.查询各个会议类型和会议数量

select meeting_type_name,count(*) from tiol_meeting group by meeting_type_name;

26.查询序号最大的三个人的信息

select * from (select * from sys_user order by gg_sort desc) where rownum<=3;

select * from (select * from sys_user order by gg_sort desc) where rownum between 1 and 3;

27.查询没有员工的部门信息

select * from dept where deptno not in(select deptno from emp);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值