我想使用表中的记录作为模板,以便将新记录添加到同一个表中。我正在尝试创建一个SQL查询,它将选择“模板”记录,然后将这些记录插回到同一个表中,但更新两列。
所以我的初始SQL会是这样的:
CALCFILE
然后我想将查询返回的行插入到同一个表中,但记录使用更新的CECODE
和{{1}}值。
感谢您的帮助!
添
答案 0 :(得分:0)
你需要显示每个字段,*不会这样做
INSER INTO CALCDETL ([col1],[col2],..,CALCFILE, CECODE )
SELECT [col1],[col2]...,NewCALCFILEValue, NewCECODEValue
FROM CALCDETL WHERECALCFILE = 'TEMPLATE' AND CECODE = 'SUB'
答案 1 :(得分:0)
这样的东西?
INSERT INTO CALCDETL (col1, col2, ...., colN, CALCFILE, CECODE)
SELECT
col1, col2, col3, ...., -- all columns *EXCEPT* the two in question
NewCalcFileValue, NewCeCodeValue
FROM
CALCDETL
WHERE
CALCFILE = 'TEMPLATE' AND CECODE = 'SUB'
基本上,您选择模板行并重新插入它们,为这两个列指定新值。为此,您必须在INSERT INTO
声明中明确定义列列表(始终是推荐的最佳做法),并且必须指定从模板行中选择的显式列列表(并重新插入未更改)