我需要檢查記錄中是否存在列值,如果是這樣,則插入該記錄的副本,並更新其中一個字段。如果列中出現值,則插入新行
我IncCodes表中的字段是字符:
IncomeCode,
Description,
Location,
CostCentre,
NewIncomeCode
我已經有哪些更新全部由NewIncomeCode的IncomeCodes和清除NewIncomeCode列中的SQL命令,其中存在:
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 <> '')
任何意見非常讚賞。我可以根據標準看到有關插入的類似問題,但沒有具體說明我需要什麼。
在此先感謝。
請標記您的RDBMS名稱(SQL Server/MySQL/Oracle)。我會建議在你的問題中提供一些示例數據和預期輸出。 – 2015-04-01 13:32:41
語法錯誤,請改爲「INSERT INTO IncCodes SELECT ...」 – jarlh 2015-04-01 13:38:10
感謝您的更正和提示傢伙。我已經爲它標記了Sybase SQL並標記了答案 – notidaho 2015-04-01 14:02:29