oracle - 如何在解码功能中输入查询?

create table ss( no number, filepath varchar2(300) )

我想在这个 table 中有 5 个或更少重复的“no”values

select count(no) from ss where no=#{no} <5insert into ss values({no},{filepath})

所以'no'的重复values不能超过5。我该怎么做?

回答1

您可以创建一个类似的触发器来实现此逻辑:

CREATE OR REPLACE TRIGGER set_no_ss_tbl_trg
BEFORE INSERT ON ss_tbl
FOR EACH ROW
BEGIN
  DECLARE
   l_cnt_no NUMBER;
  BEGIN

    SELECT COUNT(1)
      INTO l_exceeding
      FROM g_piece
     WHERE refdoss = :new.no;
    
    IF l_cnt_no > 5 THEN 

      SELECT MIN(no)
        INTO :new.no
        FROM (SELECT COUNT(1), no 
                FROM ss_tbl
               GROUP BY no 
              HAVING COUNT(1) + 1 <= 5);      
      
    END IF;
  END;
END;

相似文章

最新文章