INSERT 查询是否可以减去您输入的 2 个值以创建第三个值,然后可以将其插入到表中 - 如果这有意义...
例如
INSERT INTO table1 (column1, column2, column3)
VALUES ('50', '25', column1 - column2)
INSERT 查询是否可以减去您输入的 2 个值以创建第三个值,然后可以将其插入到表中 - 如果这有意义...
例如
INSERT INTO table1 (column1, column2, column3)
VALUES ('50', '25', column1 - column2)
INSERT INTO table1 (column1, column2, column3)
(select ('50', '25', column1 - column2) from table1 where conditions)
这是一个示例查询!希望能帮助到你!
令人费解的:
INSERT INTO table1 (column1,column2,column3)
select column1,column2,column1-column2
from
(select 50 as column1,
25 as column2
) t
由于您不能引用同一SELECT
子句中的其他列,因此您必须将其作为子查询来执行。我也改用int
文字而不是字符串,因为否则我无法让减法在我的脑海中变得有意义。
您也可以使用Table Value Constructor来做到这一点:
INSERT INTO table1 (column1,column2,column3)
select column1,column2,column1-column2
from
( VALUES (50, 25)
) AS t (column1, column2);
正如我在评论中指出的那样,如果这种关系应该始终保持,我会将 table1 构建为:
CREATE TABLE table1 (
column1 int not null,
column2 int not null,
column3 as column1 - column2
--More columns
)
因为那样,column3
值总是正确的。
您可以创建减去值的函数并在插入中使用此函数。这是做这些事情的正确方法:
INSERT INTO table1 (column1, column2, column3)
(select ('50', '25', your_function() ) from table1 where conditions)
/
使用“INSERT INTO”可以做到这一点:
INSERT INTO Table1Name (column1, column2, column3,)
(select 'X', 'Y', X - Y as Z)
这是 SQL Authority 的链接,其中包含更多 INSERT INTO 示例
另一种方法是向表中添加触发器,在插入数据时,第三列将根据前两列的差异进行更新。