SQL Server 2008 字段函数 - 根据其他两个字段之间的关系返回 'ok' 或 'no'

标签 sql sql-server function

我对更高级的数据库功能(例如函数)相当陌生,但我很好奇您将如何在 MSSQL 中执行此操作(或者如果可能的话):

如果我有一个表,其结构如下:

t_test

USR_VALUE   MULTIPLIER   TOLERANCE  VALUE_OK
100         .8           85         OK           
100         .9           85         NO

如何让 VALUE_OK 在每次更新行时根据 USR_VALUE、MULTIPLIER 和 TOLERANCE 自动更新自身(即简单计算: (t_test.USR_VALUE * t_test.MULTIPLIER >= TOLERENCE)? “确定”:“否”)

最佳答案

您想要的表达式:

CASE
  WHEN USR_VALUE * MULTIPLIER >= TOLERANCE THEN 'OK'
  ELSE 'NO'
END

请注意,您可以使用...将其作为计算列添加到表中

ALTER TABLE yourtable
ADD VALUE_OK AS     CASE
                      WHEN USR_VALUE * MULTIPLIER >= TOLERANCE THEN 'OK'
                      ELSE 'NO'
                    END

...但要小心在 WHERE 子句中使用此值,因为执行计算的成本和缺乏索引可能会令人望而却步。如果您想将其提升到一个新的水平,请搜索索引计算列。

关于SQL Server 2008 字段函数 - 根据其他两个字段之间的关系返回 'ok' 或 'no',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3663414/

相关文章:

返回字符串的PHP函数

sql四舍五入到5的倍数?

c# - SSIS - 插入大量行(亿行)的最佳方式

sql-server - 将查询结果导出到 Excel Microsoft SQL Server 2012 时找不到源数据类型 "200"错误

MySQL - 从列相同的第 1 行中减去第 2 行

c++ - C/C++ 指针作为/在函数中

mysql - 将一列移动到另一个表并通过外部 ID 更新该列

sql - 在 Postgres 中,将表行的子集从一个数据库复制到另一个数据库的最佳方法是什么?

sql - 奇怪的周期性按问题分组(ORA-00979)

sql-server - 我们如何对两个动态 SQL 语句使用 EXEC sp_executesql?