微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用函数的返回值来创建计算列

如何解决使用函数的返回值来创建计算列

这个任务的最初意图是做这样的事情:

ALTER TABLE BUGS
ADD(SAMPLE_COL AS
        --use values from BUGS and other tables to decide the value of SAMPLE_COL
)

似乎不允许使用不同的表来创建计算列,所以我尝试创建一个函数(在当前项目设置中,创建计算列比创建 VIEW 要简单得多并更改应用程序中的所有相关部分,因此我想避免回答我不使用 VIEW 的原因。)

我已成功执行以下语句,但未看到添加SAMPLE_COL 列的任何值。我错过了什么明显的东西吗?

CREATE FUNCTION RETURN_SAMPLE_FUNC(BUG_ID INTEGER,BUG_STATUS NVARCHAR(64))
RETURNS SAMPLE_COL INTEGER --I tried to add length to INTEGER too,but then it ran into an error
AS
BEGIN
    DECLARE SAMPLE_COL INTEGER;
    --this is sample logic.
    IF BUG_STATUS IN ('REPORTER ACTION','RESOLVED','MERGE PENDING') THEN
        SAMPLE_COL := 0;
    ELSE
        SAMPLE_COL := 1;
    END IF;
END

ALTER TABLE BUGS
ADD(
    SAMPLE_COL AS RETURN_SAMPLE_FUNC(BUG_ID,BUG_STATUS)
)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。