基本上是这样的:
If integer from "NumberOfSomething" is between 5 and 10, then set varchar from "Quality" to "good"
5<数字< 10 =好
10<数字< 20 =优秀
等。 这样的事情会成为可能吗?如果是这样,create table语句将如何?这两个属性属于同一个表。
答案 0 :(得分:3)
在SQL Server中,您可以使用计算列(在编写此列时未指定数据库):
CREATE TABLE T
(
C INT NOT NULL
,Computed AS
CASE WHEN C < 10 then 'Good'
ELSE 'BAD'
END
)
这样,如果您有多个需要该值的查询,他们都可以从表中获取,如果分数发生变化,则计算值会自动生成。
编辑:
以下是关于如何在MySQL上执行此操作的示例。请注意,此生成的列仅适用于MySQL 5.7.5及更高版本。
CREATE TABLE Test (
Score INT,
Cond VARCHAR(20) AS (
CASE
WHEN Score > 5 THEN 'good'
ELSE 'bad'
END)
);