Oracle小思路

本文介绍了一种通过维护表来筛选数据的方法,针对数据表中的状态和客户维护需求,使用CASE WHEN语句创建is_stste列,以区分所需和不需的OK和NO状态数据。重点在于实现高效区分并呈现客户特定的数据需求。
摘要由CSDN通过智能技术生成

一.数据表

select * from my_test

在这里插入图片描述

二.维护表

select * from my_test_Maintain

在这里插入图片描述

三.逻辑

第一张表为数据表,item为一类数据的归类,state为此归类的状态,方便为okno
第二张表为客户维护表,item为一类数据的归类,isok记录客户维护的数据,因为oracle没有Boolean类型,所以1为需要此归类状态为ok的数据,0为不需要此归类状态为ok的数据, isno同理.

根据维护表我们可以大致知道,客户需要itema,且状态(state)为ok的数据,而不要itema,且状态(state)为no的数据,而bok,on状态客户都需要.

此时,采取如下思路:

select * from
(select t1.item,t1.state,t2.isok,t2.isno,
(case when state='ok' then isok when state='no' then isno end)is_stste 
from
my_test t1,
my_test_Maintain t2
where t1.item=t2.item )where is_stste=1

增加一栏is_stste ,当数据表中的状态为ok时,is_stste的数据为isok的数据,no同理.如此我们就可以很好的划分出哪些是客户所需要的,哪些是客户不需要的.并将客户需要的数据呈现给用户(is_stste=1)

如图:
在这里插入图片描述
这里所得到的数据,已经没有itema,stateno的数据了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值