当前位置: 代码迷 >> Oracle技术 >> 有多个端口级别判断线段级别有关问题(SQL)
  详细解决方案

有多个端口级别判断线段级别有关问题(SQL)

热度:83   发布时间:2016-04-24 08:37:09.0
有多个端口级别判断线段级别问题(SQL)
有5个端口:分别为:T1,T2,T3,T4,T5
  级别分为:一般,重大,紧急;
  优先级:紧急>重大>一般
有下面几种情况:
(1)
T1: 一般,T2: 一般,T3: 一般,T4: 一般,T5: 一般;
这时候线段的级别就为:一般
(2)
T1: 一般,T2: 重大,T3: 一般,T4: 一般,T5: 一般;
这时候线段的级别就为:重大
(3)
T1: 一般,T2: 重大,T3: 一般,T4: 一般,T5: 紧急;
这时候线段的级别就为:紧急
(4)
T1: 一般,T2: 重大,T3: 重大,T4: 一般,T5: 紧急;
这时候线段的级别就为:紧急
(5)
T1: 一般,T2: 重大,T3: 重大,T4: 一般,T5: 重大;
这时候线段的级别就为:重大
提问:就是判断任意一个端口的级别,判断优先级别:
(1)当5个端口中有一个是紧急时,线段级别就为:紧急
(2)当5个端口中有一个是重大时,线段级别就为:重大
(3)当5个端口全为一般时,线段级别就为:一般
求SQL语句,提供思路也可以,谢谢。













------解决方案--------------------
一般为1 5个====>5
重大为5 5个====>25
紧急为25 

求和
5 一般
大于5 小于等于25 为重大
大于25 紧急
------解决方案--------------------
SQL code
select T1,T2,T3,T4,T5,(case when cn=5 then '一般'when cn>5 and cn<=25 then '重大'else '紧急' end) level from(select T1,T2,T3,T4,T5,(decode(T1,'一般',1,'重大',5,25)+decode(T2,'一般',1,'重大',5,25)+decode(T3,'一般',1,'重大',5,25)+decode(T4,'一般',1,'重大',5,25)+decode(T5,'一般',1,'重大',5,25)) cnfrom table_test)
  相关解决方案