首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

由两端端口级别判断线段级别有关问题(SQL)

2012-02-22 
由两端端口级别判断线段级别问题(SQL)有10个端口:分别为:G9/1,G9/2,G9/3,G9/4,G9/5T1,T2,T3,T4,T510个端

由两端端口级别判断线段级别问题(SQL)
有10个端口:分别为:G9/1,G9/2,G9/3,G9/4,G9/5;T1,T2,T3,T4,T5;
10个端口都有级别:G9/1:重大,G9/2:紧急,G9/3:一般,G9/4:重大,G9/5:紧急
  T1:重大,T2:重大,T3:一般,T4:一般,T5:一般
  优先级程度: 紧急>重大>一般
端口与端口由线段相连:
G9/1(重大)----------T1(重大)
  重大
G9/2(紧急)----------T2(重大)
  紧急
G9/3(一般)----------T3(一般)
  一般
G9/4(重大)----------T4(一般)
  重大
G9/5(紧急)----------T4(一般)
  紧急
就是由两端的端口级别判断线段的级别。两端端口谁的级别高线段就是那个级别高的级别。
希望写sql语句来判断,请求大神。
如果有需要:下面为原始数据:
序号 id 时间 资产编号资产名称 设备类型 端口号 级别
100085ALARM_001_1000032011-12-31 19:50:17:0000008523342358EMC CX480存储设备 G9/1 重大
100086ALARM_001_1000032011-12-31 19:50:17:0000008523342358EMC CX480存储设备 G9/2 紧急
100087ALARM_001_1000032011-12-31 19:50:17:0000008523342358EMC CX480存储设备 G9/3 一般
100088ALARM_001_1000032011-12-31 19:50:17:0000008523342358EMC CX480存储设备 G9/4 重大
100089ALARM_001_1000032011-12-31 19:50:17:0000008523342358EMC CX480存储设备 G9/5 紧急
100090ALARM_001_1000042011-12-31 19:50:17:0000018523342358EMC CX481存储设备 G9/6 紧急
100091ALARM_001_1000032011-12-31 19:50:17:0000008523342359EMC CX481存储设备 T1 重大
100092ALARM_001_1000032011-12-31 19:50:17:0000008523342359EMC CX481存储设备 T2 重大
100093ALARM_001_1000032011-12-31 19:50:17:0000008523342359EMC CX481存储设备 T3 一般
100094ALARM_001_1000032011-12-31 19:50:17:0000008523342359EMC CX481存储设备 T4 一般
100095ALARM_001_1000032011-12-31 19:50:17:0000008523342359EMC CX481存储设备 T5 一般
100096ALARM_001_1000042011-12-31 19:50:17:0000018523342359EMC CX482存储设备 T6 紧急




[解决办法]
紧急>重大>一般 decode( 级别, '一般',1,重大,3,9)
9 3 1
2端口连接
1+1=2 ====>一般
1+3=4 ====>重大
1+9=10 ====>紧急
3+3=6 ====>重大
3+9=12 ====>紧急
9+9=18 ====>紧急
case when 1+1=2 then 一般 
when 1+3=4 or 3+3=6 then 重大
else 紧急 end

SQL code
select a.id,b.id,(case when (a.le+b.le)=2 then '一般'when (a.le+b.le)=4 or (a.le+b.le)=6 then '重大'else '紧急' end ) s from(select id ,decode( 级别, '一般',1,重大,3,9) le from table)a,(select id ,decode( 级别, '一般',1,重大,3,9) le from table) b 

热点排行