insert into reader(cardid,address) values (‘uuu‘,‘luna‘,address) values (‘vvv‘,‘B‘,‘harry‘,address) values (‘www‘,‘C‘,‘chander‘,‘2‘,‘professor‘,address) values (‘yyy‘,‘joey‘,address) values (‘zzz‘,‘richard‘,address) values (‘OOO‘,‘micheal‘,address) values (‘ppp‘,‘richal‘,address) values (‘abp‘,‘michal‘,address) values (‘ccp‘,‘mike‘,‘bupt‘); --插入数据-borrow insert into borrow(cardid,bookid,borrowdate) values(‘xxx‘,‘aaa‘,‘2014-4-29‘); insert into borrow(cardid,‘bbb‘,‘ccc‘,‘2014-4-28‘); insert into borrow(cardid,borrowdate) values(‘yyy‘,‘ddd‘,‘2014-4-27‘); insert into borrow(cardid,borrowdate) values(‘zzz‘,borrowdate) values(‘uuu‘,‘2014-4-26‘); insert into borrow(cardid,borrowdate) values(‘vvv‘,borrowdate) values(‘www‘,‘2014-4-26‘); 表信息如下:
book------> reader-------> borrow
?
?
?
3. 查询A单位借阅图书的读者人数和人员详细信息
人数:
with vt1 as (select cardid from reader where reader.org=‘A‘) select count(1) from vt1 where exists (select cardid from borrow where borrow.cardid=vt1.cardid);
详细信息:
with vt1 as (select cardid,org from reader where reader.org=‘A‘) select cardid,org from vt1 where exists (select cardid from borrow where borrow.cardid=vt1.cardid);
4.查询借书证号尾字符为‘p‘的读者
select cardid,org from reader where cardid like ‘%p‘;
5.?查询名字以m开头的女性读者,‘1’显示为女,‘2’显示为男
select cardid, case when gender=‘1‘ then ‘女‘ when gender=‘2‘ then ‘男‘ else ‘其他‘ end gender from reader where name like ‘m%‘;
6.?2014年2-4月借过书的读者
1)查询满足条件的读者(仅包含cardid)--未去重
方式一:
select cardid,borrowdate from borrow where to_char(to_date(borrowdate,‘yyyy-mm-dd‘),‘yyyy‘)=‘2014‘ and to_char(to_date(borrowdate,‘mm‘)>=‘02‘ and to_char(to_date(borrowdate,‘mm‘)<=‘04‘; 方式二:
select cardid,‘yyyy‘)=‘2014‘ --查询 and to_char(to_date(borrowdate,‘yyyy-mm‘)>=‘2014-02‘ and to_char(to_date(borrowdate,‘yyyy-mm‘)<=‘2014-04‘; 方式三:
select cardid,‘yyyy-mm-dd hh24:mi:ss‘);
2) 查询+去重
select distinct cardid from borrow where to_char(to_date(borrowdate,‘yyyy‘)=‘2014‘ --查询+去重 and to_char(to_date(borrowdate,‘yyyy-mm‘)<=‘2014-04‘; select distinct cardid from borrow where to_date(borrowdate,‘yyyy-mm-dd hh24:mi:ss‘);
3)查询+去重+读者姓名等信息
with vt1 as (select distinct cardid from borrow where to_char(to_date(borrowdate,‘yyyy‘)=‘2014‘ and to_char(to_date(borrowdate,‘yyyy-mm‘)>=‘2014-02‘and to_char(to_date(borrowdate,‘yyyy-mm‘)<=‘2014-04‘)select cardid,org from reader where exists (select cardid from vt1 where vt1.cardid=reader.cardid);
(编辑:广州站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|