17,086
社区成员
发帖
与我相关
我的任务
分享
create table test0311(acc number, flag number);
select * from test0311;
insert into test0311 select level, mod(level, 2) from dual connect by level < 100000;
create unique index idx0311 on test0311(case when flag = 0 then null else acc || '_' || flag end);
select * from test0311 t1
where case when flag = 0 then null else acc || '_' || flag end = '637_1';
;
insert into test0311(acc, flag) values(637, 1);
至于无效记录,由于不需要校验,你可以再建一条函数索引,或者直接建一条普通的组合索引