Oracle特殊语句

(case  when instr(sample_num,'R')>0 then 1 else 0 end) R_flag

分析函数,行列转换【原博客链接:http://blog.csdn.net/herohuaxu/article/details/5816111

Create Table temp
(
num varchar2(15 Char),
name varchar2(20 Char),
sex varchar2(2 Char),
classes varchar2(30 Char),
course_name varchar2(50 Char)
);

------------------------------------------------------------------------------------------------------------------------

insert into temp(num,name,sex,classes,course_name)  values ('206211','王艺','男','06-1班','保险学');
insert into temp(num,name,sex,classes,course_name) values ('206212','肖薇','女','06-2','保险学');
insert into temp(num,name,sex,classes,course_name) values ('206212','肖薇','女','06-2','财务管理');
insert into temp(num,name,sex,classes,course_name) values ('206212','肖薇','女','06-2','财务会计');
insert into temp(num,name,sex,classes,course_name) values ('206213','陈雅诗','女','06-2','电子商务');
insert into temp(num,name,sex,classes,course_name) values ('206213','陈雅诗','女','06-2','公共经济学');
insert into temp(num,name,sex,classes,course_name) values ('206213','陈雅诗','女','06-2','公司理财');
insert into temp(num,name,sex,classes,course_name) values ('206213','陈雅诗','女','06-2','管理学原理');
insert into temp(num,name,sex,classes,course_name) values ('206213','陈雅诗','女','06-2','保险学');
insert into temp(num,name,sex,classes,course_name) values ('206214','李丹阳','男','06-1','保险学');
insert into temp(num,name,sex,classes,course_name) values ('206214','李丹阳','男','06-1','财务管理');
insert into temp(num,name,sex,classes,course_name) values ('206214','李丹阳','男','06-1','财务会计');
insert into temp(num,name,sex,classes,course_name) values ('206214','李丹阳','男','06-1','电子商务');
insert into temp(num,name,sex,classes,course_name) values ('206214','李丹阳','男','06-1','公共经济学');
insert into temp(num,name,sex,classes,course_name) values ('206215','杨伊琳','女','06-3班','环境管理学');
insert into temp(num,name,sex,classes,course_name) values ('206215','杨伊琳','女','06-3班','管理学原理');
insert into temp(num,name,sex,classes,course_name) values ('206215','杨伊琳','女','06-3班','商务谈判');
insert into temp(num,name,sex,classes,course_name) values ('206216','李佳琪','男','06-2','土地估计');

------------------------------------------------------------------------------------------------------------------------

select max(count(course_name))
from   temp
group  by num,name,sex,classes;

------------------------------------------------------------------------------------------------------------------------

select num,name,sex,classes,course_name,
row_number() over(partition by num,name,sex,classes order by course_name) rn
from   temp;

------------------------------------------------------------------------------------------------------------------------

select num,name,sex,classes,
            max(decode(rn,1,course_name,null)) course_name_1,
            max(decode(rn,2,course_name,null)) course_name_2,
            max(decode(rn,3,course_name,null)) course_name_3,
            max(decode(rn,4,course_name,null)) course_name_4,
            max(decode(rn,5,course_name,null)) course_name_5
from   (select num,name,sex,classes,course_name,
row_number() over(partition by num,name,sex,classes order by course_name) rn
                   from   temp)
group  by num,name,sex,classes;

------------------------------------------------------------------------------------------------------------------------

select num,name,sex,classes,
  (max(decode(rn,1,course_name,null)) || max(decode(rn,2,',' || course_name,null)) || max(decode(rn,3,',' || course_name,null)) || max(decode(rn,4,',' || course_name,null)) ||
            max(decode(rn,5,',' || course_name,null))) name
from   (select num,name,sex,classes,course_name,
                   row_number() over(partition by num,name,sex,classes order by course_name) rn
                   from   temp)
group  by num,name,sex,classes;

------------------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------------------------

单表---   树形结构 ----递归查询

 select t.id,t.name,t.father_id,level from t_ikang_examination_type t
connect by  prior t.id = t.father_id
start with t.father_id ='1'

---- 产前 ('a')         ---- start 菜单  C7FB96A948A81B77E040A8C057E060D7
update t_user_resource s set s.business_ids='''a''' where s.id in
(select res1.id from t_user_resource  res1 connect by prior res1.id = res1.father_id start with res1.id='D39E825FA76DFCDDE040A8C057E03EA2');

 ============================================================================

 ----------- 1:阴性   2 阳性  -1 处理失败
------------------------------------------------------------------------------------------------------
select C.sample_inspectarea,(C.failed+C.negative+C.positive+C.no_result) TOTAL,C.NEGATIVE NEGATIVE,C.FAILED FAILED,C.POSITIVE POSITIVE,
P_COMMON.F_GET_INTEGER(to_char(((C.POSITIVE)/(C.failed+C.negative+C.positive+C.no_result))*100,'fm9999999990.99999')||'%')POSI_PERCENT
from (
select sample_inspectarea,
SUM(DECODE (positive_nagative_flag,'-1',nums,0)) FAILED,
SUM(DECODE (positive_nagative_flag,'1',nums,0)) NEGATIVE,
SUM(DECODE (positive_nagative_flag,'2',nums,0)) POSITIVE,
SUM(DECODE (positive_nagative_flag,'0',nums,0)) NO_RESULT
from
(
select s.sample_inspectarea,s.positive_nagative_flag,sum(s.nums) Nums from mv_hpv_data_report s
where sample_inspectarea is not null  -- and  ||'---'
group by s.sample_inspectarea,s.positive_nagative_flag order by s.sample_inspectarea
)
group by sample_inspectarea
) C  order by C.sample_inspectarea ;

 -----------------------------------------------------------------------------------

------------------------------------------------------------------------------------

创建会话级 【session】临时表:

create global temporary table hims_visit_report_temp(hospital_id varchar2(32)) on commit preserve rows

ORACLE根据外键找关联的表

 select * from user_cons_columns cl where cl.constraint_name = 外键名称。

http://mrsad52.blog.163.com/blog/static/1721337982011101754649677/

   

猜你喜欢

转载自luckytyy.iteye.com/blog/1985130