sql - 如何创建派生属性?

标签 sql postgresql ddl calculated-columns

<分区>

我需要创建一个派生属性 Age,它根据 Datebought 属性计算元组的年龄。我发现它可以用 View 制作,但我不知道将 View 放在哪里。

CREATE TABLE Kids_Bike(
    BikeId ID,
    BrandName VARCHAR(max),
    ModelName VARCHAR(max),
    DateBought DATE,
    /*??????????????????????*/
    Age (SELECT datediff(day, DateBought , GETdate()) / 365.2425 ) DECIMAL,
    Color VARCHAR(max),
    StationId ID,
    TrainingWheels BIT,
    PRIMARY KEY (BikeId),
    FOREIGN KEY (StationId) REFERENCES RentingStation(StationID)
);

最佳答案

你把 View 放在表的外面:

create view v_kids_bike as
    select kb.*, extract(day from (current_date - date_bought)) / 365.2425 as age
    from kids_bike;

如果你恰好在使用SQL Server,你可以在create table中定义计算列为:

Age as (SELECT datediff(day, DateBought, GETdate()) / 365.2425 ),

关于sql - 如何创建派生属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49918232/

相关文章:

python - SQLAlchemy:部分指定的关系

ddl - 如何向 Teradata 中的现有表 DDL 添加注释?

database - 如何使用 postgresql 触发器设置 UUID

django - Postgresql 本地主机连接 - 连接被拒绝

django - 如何使用 Django 保存到远程服务器

mysql - 为什么我会收到此错误 : "Cannot add foreign key constraint."

php - 评级公式设计(概念而非编码)

java - 更新语句Java sql异常: Too few parameters expected one more

mysql - 将项目从一个数据库插入到另一个 SQL 语法

sql - Azure 数据工厂查询 Mongo DB 以筛选日期