[SQL ] 有条件顺序的case when写法

楼主: giveadamn (nein)   2019-11-04 11:10:35
数据库名称:SQL
数据库版本:11
内容/问题描述:
各位板友好
我有一个Case When的顺序问题,想请教大家
现在我有一个通话纪录的TABLE,里面会用到3个字段
1.拨出时间
2.拨出号码
3.拨出结果
其中,
1.拨出结果有很多的代号,总共分为3类
有十几种代号,会被归类为有效电话,有十几种代号,会被归类为无效电话
有一个代号,会被归类为无人接听
2.若只有电话号码,没有拨出时间也没有拨出结果,表示尚未拨打
一个电话号码,可能会被拨打0~N次,若显示为无效电话,就不会再继续拨打了
但若为有效电话,则会继续拨打,拨打的结果也有可能是有效或无人接听
例如
case 1
2019/10/1 0912345678 无人接听
2019/10/1 0912345678 无人接听
2019/10/1 0912345678 有效电话的代码
2019/10/1 0912345678 无人接听
case 2
2019/10/1 0987654321 无人接听
2019/10/1 0987654321 无人接听
2019/10/1 0987654321 无效电话的代码
case 3
2019/10/1 0988888888 无人接听
2019/10/1 0988888888 无人接听
我想要有一个字段来判断,
若同一支号码,只有拨打结果有过"有效",不管之后又打了多少通无人接听,都算有效
若同一支号码,只有拨打结果有过"无效",就算无效
若同一支号码,全部的拨打结果只有无人接听,才显示为无人接听
若同一支号码,从未拨打过,则显示尚未拨打
我现在用case when来写
我只能写
case when 拨出结果 in(oo,ox,xx,xu) then '有效'
case when 拨出结果 in(yy,ymy,yz,zz) then '无效'
end
不能再加case when 拨出结果 in(kk) then '无人接听'
一加这一栏,很多应该是有效的电话,就会被归类到无人接听
请问,这样的情况
我该怎么写呢?
先谢谢各位板友,谢谢

Links booklink

Contact Us: admin [ a t ] ucptt.com