oracle 使用in的时候使用多个字段
这个也是刚需啊。
最近有个需求,在一堆商品里面过滤出一些特定的商品类型、供应商的商品(同时满足)。
需要的数量不多,但是可能会变化,所以做了两个配置表。
商品类型:
create table BKR_CFG_PACKAGE ( groupname VARCHAR2(64), packagecode VARCHAR2(64), packagename VARCHAR2(64), groupcode VARCHAR2(2) )
供应商表:
create table BKR_CFG_VSP ( groupcode VARCHAR2(64), vspcode VARCHAR2(64), vspname VARCHAR2(64) )
同时满足商品类型和供应商的SQL:
select a.packagecode,b.vspcode from bkr_cfg_package a,bkr_cfg_vsp b where b.groupcode = a.groupcode
好了,现在进入主题“in 多个字段”
同时满足的就必须 一条数据 packagecode和vspcode同时相等
create or replace view view_vsp_add as select * from view_vsp_package_mapping vm where (vm.packagecode,vm.vspcode) in ( select a.packagecode,b.vspcode from bkr_cfg_package a,bkr_cfg_vsp b where b.groupcode = a.groupcode)
做的是个视图,然后其他地方都可以用了。