Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如果列中存在值,则插入新行_Sql_Database_Sybase - Fatal编程技术网

Sql 如果列中存在值,则插入新行

Sql 如果列中存在值,则插入新行,sql,database,sybase,Sql,Database,Sybase,我需要检查记录是否存在列值,如果存在,则插入该记录的副本,并更新其中一个字段 “我的IncCodes”表的字段为字符: IncomeCode, Description, Location, CostCentre, NewIncomeCode 我已经有了一个SQL命令,该命令更新了NewIncomeCode中的所有IncomeCodes,并清除了存在的NewIncomeCode列: UPDATE IncCodes SET IncomeCode = NewIncomeCode ,NewIn

我需要检查记录是否存在列值,如果存在,则插入该记录的副本,并更新其中一个字段

“我的IncCodes”表的字段为字符:

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的类似问题,但没有具体说明我需要什么

提前谢谢

INSERT INTO IncCodes (IncomeCode,Description,Location,CostCentre,NewIncomeCode)
SELECT NewIncomeCode
              ,Description
              ,Location
              ,CostCentre
              ,NULL
        FROM IncCodes
        WHERE NewIncomeCode <> ''

如果未指定ColumnSN,则切勿编写插入,因为它是SQL反模式,可能会导致大量数据完整性问题。

请标记您的RDBMS名称SQL Server/MySQL/Oracle。我建议在您的问题中给出一些示例数据和预期输出。语法错误,请改为插入IncCodes SELECT…感谢各位的更正和提示。我给它贴上了Sybase SQL的标签,并将答案标记为空,所以我给了Vlad答案。谢谢你!
INSERT IGNORE INTO IncCodes
    (IncomeCode, Description, Location, CostCentre, NewIncomeCode)
SELECT
    NewIncomeCode, Description, Location, CostCentre, ''
FROM IncCodes
WHERE NewIncomeCode <> '' AND Location = Location1
;