且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

ORACLE SQL开发where子句之case-when

更新时间:2022-01-17 06:44:09

    湖南长沙一地市医保数据抽取要求从结果集中排除掉城市职工(61)就医方式住院(61),城市居民31就医方式住院(21)的数据。其实,这一业务逻辑实现,可以
那scott方案下的数据表emp做实验。
   我要取的全部结果集:
ORACLE SQL开发where子句之case-when
   那我要排除掉部门30中的WARD和部门20中的ADAMS,该怎么实现呢?其实很简单,可以使用结果集做差,如下所示:
ORACLE SQL开发where子句之case-when
    其实,使用where子句的case-when有更优雅的实现方式:
ORACLE SQL开发where子句之case-when
   对比结果集的minus和where子句的case-when,前者的实现逻辑好理解就是从总的结果集中排除不要的结果,
后者实现是取符合要求的数据,就性能而言个人觉得第二种更好、代码也更优雅。