如果已存在另一个值,则创建SQL查询以插入值

时间:2013-07-02 15:30:35

标签: sql sql-server

我有3张桌子。 PositionCode,PositionCodeDetail和Services

服务有serviceid,desc和status

PositionCode具有codeid,positioncode,desc,status

PositionCodeDetail有positioncodedetailid,serviceid和codeid

PositionCodeDetail基本上是给定位置代码的潜在服务列表。我现在想要为每个位置代码添​​加一个新的serviceid,如果它的现有服务代码为15。

基本上每次位置代码都有serviceid 15我想插入一条新记录,该记录具有相同的codeid并添加serviceid为20. Positioncodedetailid会自动分配。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

insert  PositionCodeDetail 
        (serviceid, codeid)
select  20
,       codeid
from    PositionCodeDetail
where   serviceid = 15

使用service = 20附加检查现有行:

insert  PositionCodeDetail 
        (serviceid, codeid)
select  20
,       codeid
from    PositionCodeDetail pcd1
where   serviceid = 15
        and not exists
        (
        select  *
        from    PositionCodeDetail pcd2
        where   pcd1.codeid = pcd2.codeid
                and pcd2.serviceid = 20
        )