表ttt有三个字段 seq --序列 jcxm --检查项目 zhi --值 数据分别如下: seq jcxm zhi ------- -------- -------- 11 1 0
50 11 2 0
21 11 3 0
25 12 1 0
24 12 2 0
30 12 3 0
22 实现功能 创建视图时移动行值为列值 create view v_view1 as select seq, sum(decode(jcxm,1, zhi)) 检测项目 1, sum(decode(jcxm,2, zhi)) 检测项目 2, sum(decode(jcxm,3, zhi)) 检测项目 3 from ttt group by seq; 序号 检测项目 1 检测项目 2 检测项目 3 11 0
25 12 0
22 技巧: 用 THEN中的 0和 1来进行统计(SUM) jcxm zhi ---- ---- a 1 b 1 a 3 d 2 e 4 f 5 a 5 d 3 d 6 b 5 c 4 b 3 求他的zhi既是1,也是3,也是5的jcxm 方法一 select jcxm from ttt group by jcxm having sum(decode(zhi,1,-1,3,-1,5,-1,0)) = -3 方法二 select jcxm from ttt group by jcxm having (sign(sum(decode(zhi,1,-1,0)))+ sign(sum(decode(zhi,3,-1,0)))+sign(sum(decode(zhi,5,-1,0)))