需要帮助在SQL Server中获取插入语句

时间:2015-12-13 16:03:07

标签: sql sql-server

我需要将非现有值插入表。

  • 表名BarcodeSubgroup(单列表)
  • 列(nvarchar

表格中的示例数据

ProductSubGroupID
-----------------
F11WD
F77AH
G36CN
G37HJ
H11AA
H11AD

现在我需要在表中插入不存在的值。

希望检查并插入值。

H11AA
H11AD
G78DE
G76DK
G41JA
B45JC

查询书面

insert into BarcodeSubgroup 
   select 
       productsubgroupid 
   where 
       not exists ('G78DE', 'G76DK', 'G41JA',
                   'B45JC', 'H11AA', 'H11AD')

现在它应该只插入4个不存在的值。

1 个答案:

答案 0 :(得分:2)

您可以使用select . . . not exists

执行此操作
insert into BarcodeSubgroup(productsubgroupid)
    select productsubgroupid 
    from (values ('G78DE'), ('G76DK'), ('G41JA'), ('B45JC'), ('H11AA'), ('H11AD') ) v(productsubgroupid)
    where not exists (select 1
                      from BarcodeSubgroup bs
                      where bs.productsubgroupid = v.productsubgroupid
                     );