首页新闻找找看学习计划

如何用ORACLE的decode函数来解决这个问题

0
悬赏园豆:50 [已解决问题] 解决于 2017-09-01 10:54

有一张人员表,有name这个字段。如何写sql语句判断如果表中name这一列有A无B则显示1,有B无A则显示2,既有A又有B则显示3,AB都不存在则显示4。
也就是执行完SQL语句只会看到一个字段,可以通过这个字段的值是1234来判断员工表中是否有张三或李四。

求写出SQL语句

哟,嘟嘟有糖☄⊙ω⊙的主页 哟,嘟嘟有糖☄⊙ω⊙ | 初学一级 | 园豆:9
提问于:2017-08-26 17:08
< >
分享
最佳答案
0

有A:select count(name) from table where name=A; 结果大于0
有B:select count(name) from table where name=B; 结果大于0
同理没有则结果为0
所以可以这样写
用COUNTA COUNTB分别代表上面的语句
decode(COUNTA, 1, decode(COUNTB, 1, 3, 1), decode(COUNTB, 1, 2, 4))

收获园豆:50
流年飞雨 | 小虾三级 |园豆:1928 | 2017-08-26 23:23
流年飞雨 | 园豆:1928 (小虾三级) | 2017-08-26 23:25
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册