有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.   

    一般为1 5个====>5
    重大为5 5个====>25
    紧急为25 求和
    5 一般
    大于5 小于等于25 为重大
    大于25 紧急
      

  2.   

    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)) cn
    from table_test)