如何创建具有从整数派生的varchar属性的表?

时间:2016-03-03 18:04:58

标签: mysql sql sql-server

基本上是这样的:

If integer from "NumberOfSomething" is between 5 and 10, then set varchar from "Quality" to "good"

5<数字< 10 =好

10<数字< 20 =优秀

等。 这样的事情会成为可能吗?如果是这样,create table语句将如何?这两个属性属于同一个表。

1 个答案:

答案 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)
    );