我的表中有一行,如果其他相似的行不存在,则需要插入它们。例如,列SubKey1 = XFITEST和列SubKey2 =5。我需要检查是否有行,其中列SubKey1 = XFITEST和列SubKey2 = 7,否则,我需要将其插入。基本上,我需要检查每个具有Subkey2 = 5的SubKey1,并确保它也具有具有相同SubKey1但SubKey2 = 7的行,如果不是,则需要插入它。
谢谢!
编辑:希望是一个很好的例子。在下面的示例中,我需要确定Subkey1 XFITEST缺少subkey2为7的行并将其插入。
这是我目前拥有的。我需要检查Subkey1中有一堆不同的值。
SubKey1 SubKey2
AISBTF500 5
AISBTF500 7
XFITEST 5
这是我要完成的工作。
SubKey1 SubKey2
AISBTF500 5
AISBTF500 7
XFITEST 5
XFITEST 7
答案 0 :(得分:1)
您可以按照以下步骤进行操作:
insert into Table1(SubKey1, SubKey2)
select SubKey1, 7 as SubKey2 from Table1 as tbl1
where SubKey2=5 and
not exists(select 1 from Table1 where SubKey1=tbl1.SubKey1 and SubKey2=7)
group by SubKey1, SubKey2
答案 1 :(得分:1)
您可以将not exists
与insert into .... select
配合使用。
获取没有SubKey1
名称的SubKey2 = 7
。然后将其插入。
create table t(
SubKey1 varchar(50),
SubKey2 int
);
insert into t values ('AISBTF500',5);
insert into t values ('AISBTF500',7);
insert into t values ('XFITEST',5);
INSERT INTO T (SubKey1,SubKey2)
SELECT SubKey1,7
FROM T t1
WHERE not exists (
SELECT 1
FROM T tt
WHERE tt.SubKey2 = 7 and tt.SubKey1 = t1.SubKey1
)
查询1 :
select * from t
Results :
| SubKey1 | SubKey2 |
|-----------|---------|
| AISBTF500 | 5 |
| AISBTF500 | 7 |
| XFITEST | 5 |
| XFITEST | 7 |