如何在sql中创建一个派生属性列,它是其他两个现有列的总和

Posted

技术标签:

【中文标题】如何在sql中创建一个派生属性列,它是其他两个现有列的总和【英文标题】:How to create a derived attribute column in sql which is sum of other two existing columns 【发布时间】:2021-11-14 17:05:12 【问题描述】:
CREATE TABLE Software
(
    name varchar(8) not null,
    title varchar(20) not null,
    dev_in varchar(8) not null,
    scost decimal(7,2),
    dcost integer(5),
    sold integer(3)
);

我想要一个列 sell_price,它是 scost 和 dcost 的总和。

【问题讨论】:

【参考方案1】:

您可以使用 mysql 生成的列。 Reference Doc

-- when creating table

create table software ( 
  name varchar(8) not null,
  title varchar(20) not null, 
  dev_in varchar(8) not null, 
  scost decimal(7,2), 
  dcost integer(5), 
  sold integer(3), 
  selling_price decimal(7,2) as (dcost + scost) 
);

-- or for an existing table

alter table software add column selling_price decimal(7,2) as (dcost + scost);
mysql> insert into software (name, title, dev_in, scost, dcost, sold)
    -> values("s", "s", "ss", 100.1, 2, 3);

mysql> select * from software;
+------+-------+--------+--------+-------+------+---------------+
| name | title | dev_in | scost  | dcost | sold | selling_price |
+------+-------+--------+--------+-------+------+---------------+
| s    | s     | ss     | 100.10 |     2 |    3 |       102.10  |
+------+-------+--------+--------+-------+------+---------------+
1 row in set (0.00 sec)

【讨论】:

以上是关于如何在sql中创建一个派生属性列,它是其他两个现有列的总和的主要内容,如果未能解决你的问题,请参考以下文章

通过在两个现有列上使用 lambda 函数在 Panda 中创建一个新列

基于现有列派生其他列

在sql中创建一个组

如何在 C++ 中从现有 2D 向量中创建具有特定列的新向量

如何在 SQL 2008 R2 的表中创建 AutoCounter 列?

如何在 SQL Server 中创建一个接受一列数据的函数?