如何在行中的sql中乘以两个值并将结果放在同一行中的另一个单元格中?

时间:2014-03-14 14:56:31

标签: sql sql-server triggers

我有一个名为'Task'的表

有四列(id,x,y和x * y)

我只输入值(id,x和y)

当我输入值时需要触发器或其他东西自动计算值'x * y'

谢谢,

3 个答案:

答案 0 :(得分:1)

在SQL Server中,您可以只使用computed column,不需要触发器;

CREATE TABLE task (
  id INT,
  x  INT, 
  y  INT,
  xy AS x*y);  -- xy will always be selected as x*y

An SQLfiddle to test with

其他数据库具有类似的功能,例如Oracle's virtual columns

答案 1 :(得分:1)

您可以使用Computed columns来实现目标。

CREATE TABLE Task(Id int, x int, y int, xy as x* y);

答案 2 :(得分:0)

如果你想要一个触发器(可能以后可以更改值,而x*y只是默认值?),那么这个可以是完成:

CREATE TRIGGER T_task on task
instead of insert
as
    insert into task (id,x,y,[x*y] /* Really need to rename this */)
    select id,x,y,x*y from inserted

请参阅Use the inserted and deleted Tables