Oracle 实用案例1:DECODE行转列

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_37879830/article/details/82145284

1.原始数据

医院编号 病人编号 访视编号 检查项目 检查结果 结果判定
S-01 P001 V01 白细胞 2.79
S-01 P001 V01 血小板 1.41
S-01 P001 V02 白细胞 3.11
S-01 P002 V02 白细胞 1.23
S-02 P001 V01 白细胞 2.66

同一医院,会有不同病人

同一医院,同一病人,会有不同访视

同医院,同一病人,同一访视,会有不同的检查项目

2.目标结构

医院编号 病人编号 访视编号 白细胞 结果判定 血小板 结果判定
S-01 P001 V01 2.79 1.41
S-01 P001 V02 3.11    
S-01 P002 V02 1.23    
S-02 P001 V01 2.66    

3.实现方法

CREATE TABLE XCG(

SITEID      VARCHAR2(100),--医院编号

SUBJID    VARCHAR2(100),--病人编号

VISIT        VARCHAR2(100),--访视编号

TERM       VARCHAR2(100),--检查项目

RESULT    VARCHAR2(100),--检查结果

CLSIG       VARCHAR2(100),--结果判定

SELECT SITEID,SUBJID,VISIT,
MAX(DECODE(TERM,'白细胞总',RESULT))WBC_1,
MAX(DECODE(TERM,'白细胞总数(WBC)',CLSIG))CLSIG_1,
MAX(DECODE(TERM,'血小板',RESULT))PLT_1,
MAX(DECODE(TERM,'血小板',CLSIG))CLSIG_2
FROM XCG group by  SITEID, SUBJID,VISIT 

猜你喜欢

转载自blog.csdn.net/weixin_37879830/article/details/82145284
今日推荐