首页 > 解决方案 > 如果不存在,则插入从先前查询中获取的行的表值

问题描述

我有 2 个表,比如说'ACCESSENTRY'PROJECT.,并PROJECT包含ROLE、ACCESSENTRY列。我需要找到ACCESSENTRY等于 'A' 的第一行,并将这些行插入到ACCESSENTRY具有获取的 ' ROLE ' 并给定ACCESSENTRY的新行中,但如果该行不存在。所以让我们在这个查询中说:

标签: sqloraclesql-insert

解决方案


我想你想要not exists

insert into ROLEE (role, accessentry) 
    select r.role, 'ACCESS'
    from ROLEE r
    where r.ACCESSENTRY = 'A' and
          not exists (select 1 from rolee r2 where r2.role = r.role and r2.column2 = 'ACCESS');

推荐阅读