sql-server - 在sql中创建计算字段

标签 sql-server average alter

这看起来很简陋,但我在网上找不到匹配的简洁示例。

我有三个字段; m1m2m3 。我需要创建一个列或字段,它是它们三个的平均值。计算的字段将被命名为就业。下面的代码就足够了吗?

ALTER TABLE dbo.tablename ADD Employment AS Select ((m1+m2+m3)/3)

样本数据
m1   20    20    30
m2   15    17    25
m3   60    77    13

想要的结果。
Name        m1    m2    m3   Employment
Auto body    20    20    30     23
Auto Parts   15    17    25     19
Auto Sales   60    77    13     50

最佳答案

你很亲近,它叫Computed Column
https://technet.microsoft.com/en-us/library/ms191250(v=sql.105).aspx

ALTER TABLE dbo.tablename ADD Employment AS ((m1+m2+m3)/3)

更新:

如果要强制计算列的数据类型,可以执行以下操作
ALTER TABLE dbo.tablename ADD Employment AS CAST((m1+m2+m3)/3 AS Numeric (9,0))

关于sql-server - 在sql中创建计算字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46104223/

相关文章:

c# - Entity Framework - 尝试插入到带有外键的表中,EF 尝试插入到带有主键的原始表中

postgresql - 根据PostgreSQL中瞬时时间前后2分钟创建每小时平均值

sql - 删除 ON DELETE CASCADE

python - 改变表 Sqlite : how to check if a column exists before alter the table?

mysql - 如何为没有内容的行打印零?

C# - 使用内联 SQL 恢复 SQL Server 数据库

mysql - 按正确顺序删除/更新/插入数据 MSSQL -> MySQL

mysql - 如何: MYSQL average from multiple columns excluding Null Values and Changing Number Divided By

java - 我需要一个java中的sql语句来查找带有where子句的平均值并返回值

oracle - 向生产中的现有表添加新列