我需要检查一个记录是否存在一个列值,如果是的话,插入一个该记录的副本,其中一个字段被更新。
inccodes表的字段是字符:
IncomeCode,
Description,
Location,
CostCentre,
NewIncomeCode
我已经有一个sql命令,它从newincomecode更新所有incomecode,并清除newincomecode列(如果存在):
UPDATE IncCodes
SET IncomeCode = NewIncomeCode
,NewIncomeCode = ''
WHERE NewIncomeCode <> ''
AND Location = Location1
但是,我需要一个命令,这个命令除了不更新incomecode字段之外,还可以创建一个重复的记录,其中incomecode由newincomecode字段更新。类似于这个伪sql:
INSERT INTO IncCodes
VALUES (SELECT NewIncomeCode
,Description
,Location
,CostCentre
,NULL
FROM IncCodes
WHERE NewIncomeCode <> '')
任何建议都非常感谢。我可以根据标准看到关于insert的类似问题,但没有什么特别需要的。
提前谢谢。
最佳答案
INSERT IGNORE INTO IncCodes
(IncomeCode, Description, Location, CostCentre, NewIncomeCode)
SELECT
NewIncomeCode, Description, Location, CostCentre, ''
FROM IncCodes
WHERE NewIncomeCode <> '' AND Location = Location1
;