INSERT INTO减去2个值

时间:2013-01-08 12:54:12

标签: sql sql-server-2008

INSERT查询是否有可能减去您输入的2个值以创建第3个值,然后可以将其插入表中 - 如果这有意义的话......

e.g。

INSERT INTO table1 (column1, column2, column3)
VALUES ('50', '25', column1 - column2)

5 个答案:

答案 0 :(得分:2)

INSERT INTO table1 (column1, column2, column3)
(select ('50', '25', column1 - column2) from table1 where conditions)

这是一个示例查询!希望它有所帮助!

答案 1 :(得分:2)

螺旋型:

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值始终是正确的。

答案 2 :(得分:1)

您可以创建减去值的函数并在insert中使用此函数。这是做这些事情的正确方法:

INSERT INTO table1 (column1, column2, column3)
 (select ('50', '25', your_function() ) from table1 where conditions)
/

答案 3 :(得分:1)

使用“INSERT INTO”可以执行此操作:

INSERT INTO Table1Name (column1, column2, column3,)
(select 'X', 'Y', X - Y as Z)

这是一个link到SQL权限,有更多INSERT INTO

的例子

答案 4 :(得分:0)

另一种方法是向表中添加一个触发器,在插入数据时,第三列将使用前两列的差异进行更新。

相关问题