--//查询a=2或b=4 ,同时a=2 and b=4 的时候按id倒叙排序并放在上面;
prompt PL/SQL Developer import file
prompt Created on 2010年11月11日 by Administrator
set feedback off
set define off
prompt Creating U...
create table U
(
ID VARCHAR2(20),
A VARCHAR2(20),
B VARCHAR2(20)
)
tablespace USERS
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
prompt Disabling triggers for U...
alter table U disable all triggers;
prompt Truncating U...
truncate table U;
prompt Loading U...
insert into U (ID, A, B)
values ('1', '2', '4');
insert into U (ID, A, B)
values ('2', '2', '3');
insert into U (ID, A, B)
values ('4', '3', '4');
insert into U (ID, A, B)
values ('5', '1', '1');
insert into U (ID, A, B)
values ('6', '7', '2');
insert into U (ID, A, B)
values ('7', '2', '4');
insert into U (ID, A, B)
values ('8', '1', '4');
insert into U (ID, A, B)
values ('9', '5', '6');
insert into U (ID, A, B)
values ('10', '4', '2');
insert into U (ID, A, B)
values ('11', '23', '3');
commit;
prompt 10 records loaded
prompt Enabling triggers for U...
alter table U enable all triggers;
set feedback on
set define on
prompt Done.
--答案如下:。
select id,a, b from(
select * from (
select id,a,b, (CASE when a=2 and b=4 then 200 when a=2 or b=4 then 200/id else 0 end) flag
from u ) t
where t.flag<>0)
order by flag desc, id desc;
--利用emp,dept表(不要用已有的函数,用原始方法)
--自己求时间差。
部门 入职时间小于公司成立3年的部门的薪水总和 入职时间大于公司成立3年的部门的薪水总和
部门1 xxx xxx
部门2 xxx xxx
总和: xxx xxx