如果列中存在值,则插入新行
Insert new row if value present in column
我需要检查记录是否存在列值,如果存在,则插入该记录的副本,其中一个字段已更新。
我的 IncCodes table 的字段是字符:
IncomeCode,
Description,
Location,
CostCentre,
NewIncomeCode
我已经有一个 SQL 命令,它更新来自 NewIncomeCode 的所有 IncomeCodes 并清除存在的 NewIncomeCode 列:
UPDATE IncCodes
SET IncomeCode = NewIncomeCode
,NewIncomeCode = ''
WHERE NewIncomeCode <> ''
AND Location = Location1
但是我需要执行相同操作的命令,除了不是更新 IncomeCode 字段,而是使用由 NewIncomeCode 字段更新的 IncomeCode 创建一个重复记录。像这样的伪 sql:
INSERT INTO IncCodes
VALUES (SELECT NewIncomeCode
,Description
,Location
,CostCentre
,NULL
FROM IncCodes
WHERE NewIncomeCode <> '')
非常感谢任何建议。我可以看到关于基于条件插入的类似问题,但没有什么特别是我需要的。
提前致谢。
INSERT INTO IncCodes (IncomeCode,Description,Location,CostCentre,NewIncomeCode)
SELECT NewIncomeCode
,Description
,Location
,CostCentre
,NULL
FROM IncCodes
WHERE NewIncomeCode <> ''
切勿在未指定属于 SQL 反模式的列的情况下编写插入,这可能会导致大量数据完整性问题。
INSERT IGNORE INTO IncCodes
(IncomeCode, Description, Location, CostCentre, NewIncomeCode)
SELECT
NewIncomeCode, Description, Location, CostCentre, ''
FROM IncCodes
WHERE NewIncomeCode <> '' AND Location = Location1
;
我需要检查记录是否存在列值,如果存在,则插入该记录的副本,其中一个字段已更新。
我的 IncCodes table 的字段是字符:
IncomeCode,
Description,
Location,
CostCentre,
NewIncomeCode
我已经有一个 SQL 命令,它更新来自 NewIncomeCode 的所有 IncomeCodes 并清除存在的 NewIncomeCode 列:
UPDATE IncCodes
SET IncomeCode = NewIncomeCode
,NewIncomeCode = ''
WHERE NewIncomeCode <> ''
AND Location = Location1
但是我需要执行相同操作的命令,除了不是更新 IncomeCode 字段,而是使用由 NewIncomeCode 字段更新的 IncomeCode 创建一个重复记录。像这样的伪 sql:
INSERT INTO IncCodes
VALUES (SELECT NewIncomeCode
,Description
,Location
,CostCentre
,NULL
FROM IncCodes
WHERE NewIncomeCode <> '')
非常感谢任何建议。我可以看到关于基于条件插入的类似问题,但没有什么特别是我需要的。
提前致谢。
INSERT INTO IncCodes (IncomeCode,Description,Location,CostCentre,NewIncomeCode)
SELECT NewIncomeCode
,Description
,Location
,CostCentre
,NULL
FROM IncCodes
WHERE NewIncomeCode <> ''
切勿在未指定属于 SQL 反模式的列的情况下编写插入,这可能会导致大量数据完整性问题。
INSERT IGNORE INTO IncCodes
(IncomeCode, Description, Location, CostCentre, NewIncomeCode)
SELECT
NewIncomeCode, Description, Location, CostCentre, ''
FROM IncCodes
WHERE NewIncomeCode <> '' AND Location = Location1
;