Sql 数据库表中的公式/计算列
我不认为这是可能的,也不认为这是有意义的,但这里的大多数人比我聪明得多,问我也没什么坏处。是否可以在数据库中创建一个公式表。我不是问。我的意思是,假设我有一个表,其中一列是“价格”,另一列是“数量”,我想要一列“成本”来计算(价格*数量)。。。。当数据被导入时。这样以后我就可以: 从表中选择*Sql 数据库表中的公式/计算列,sql,db2,ibm-cloud,Sql,Db2,Ibm Cloud,我不认为这是可能的,也不认为这是有意义的,但这里的大多数人比我聪明得多,问我也没什么坏处。是否可以在数据库中创建一个公式表。我不是问。我的意思是,假设我有一个表,其中一列是“价格”,另一列是“数量”,我想要一列“成本”来计算(价格*数量)。。。。当数据被导入时。这样以后我就可以: 从表中选择* 如果你告诉我这是一个愚蠢的问题,我会理解的,但我是从内部客户那里得到的,需要调查一下。我使用的数据库是BlueMix上的DB2。尝试使用触发器。这里有一个教程: 数据库触发器是自动执行的过程代码 对某些
如果你告诉我这是一个愚蠢的问题,我会理解的,但我是从内部客户那里得到的,需要调查一下。我使用的数据库是BlueMix上的DB2。尝试使用触发器。这里有一个教程: 数据库触发器是自动执行的过程代码 对某些事件的反应
尝试使用触发器。这里有一个教程: 数据库触发器是自动执行的过程代码 对某些事件的反应
您可以将成本列的默认值设置为
ALTER TABLE table-name ALTER COLUMN cost set cost=price*quantity;
或者您可以创建如下触发器
db2 create trigger trigger_name after insert on table_name
for each row mode db2sql begin atomic update tablle_name
set cost=qty*price; end
您可以将成本列的默认值设置为
ALTER TABLE table-name ALTER COLUMN cost set cost=price*quantity;
或者您可以创建如下触发器
db2 create trigger trigger_name after insert on table_name
for each row mode db2sql begin atomic update tablle_name
set cost=qty*price; end
可以使用计算列执行操作。在计算列中,默认公式如下所示
ALTER TABLE <TABLENAME> ADD <COLUMN_NAME> AS (<COLUMN_NAME1> * <COLUMN_NAME2>);
altertableaddas(*);
因此,上面的查询只用于要添加该列的同一个表。
如果要添加另一个表,有很多方法
范例
CREATE TABLE Cost_Table
(
Cost int
);
INSERT INTO Cost_Table (Cost)<BR>
SELECT price * quantity FROM Table_name;
创建成本表\u表
(
成本整数
);
插入成本表(成本)
从表名称中选择价格*数量;
这是一种优化的方法。因此,我们可以使用上面的查询而不是触发器。
因此,上面的查询使用内部的事务和存储过程 您可以使用计算列执行操作。在计算列中,默认公式如下所示
ALTER TABLE <TABLENAME> ADD <COLUMN_NAME> AS (<COLUMN_NAME1> * <COLUMN_NAME2>);
altertableaddas(*);
因此,上面的查询只用于要添加该列的同一个表。
如果要添加另一个表,有很多方法
范例
CREATE TABLE Cost_Table
(
Cost int
);
INSERT INTO Cost_Table (Cost)<BR>
SELECT price * quantity FROM Table_name;
创建成本表\u表
(
成本整数
);
插入成本表(成本)
从表名称中选择价格*数量;
这是一种优化的方法。因此,我们可以使用上面的查询而不是触发器。
因此,上面的查询使用内部的事务和存储过程 如果不小心,可能会导致重大安全漏洞。查找“SQL代码注入”
但要做到这一点,另一种方法可能是在存储过程中使用
executeimdeate
如果不小心,可能会导致重大安全漏洞。查找“SQL代码注入”
但要做到这一点,另一种方法可能是在存储过程中使用
executeimdeate
谢谢你,吉内什。我有点希望你能告诉我,我连问这个问题都很愚蠢。。。。。但现在我必须这么做了:/谢谢你,谢谢你。我有点希望你能告诉我,我连问这个问题都很愚蠢。。。。。但现在我必须这么做了:谢谢你,弗拉达特。我有点希望你能告诉我,我连问这个问题都很愚蠢。。。。。但现在我必须这么做了:谢谢你,弗拉达特。我有点希望你能告诉我,我连问这个问题都很愚蠢。。。。。但是现在我必须这么做了:谢谢