我正在尝试创建一个函数,它将根据查找表中的分数和版本号返回标签
所以我有一张查阅表
标签 | 版本 | 分钟 | 最大限度 |
---|---|---|---|
高的 | 1 | 7 | 10 |
医学 | 1 | 3 | 6 |
低的 | 1 | 0 | 2 |
高的 | 2 | 8 | 10 |
医学 | 2 | 5 | 7 |
低的 | 2 | 0 | 4 |
create function get_label(score int, version int, vector string)
returns varchar
language sql as
$$
select label
from lookup
where version = coalesce(version, to_number(substr(vector,2,1)))
and score between min and max;
$$
我有各种表,我想为它们设置一个新的派生标签列。当我运行更新语句时,其中一些表有一个版本,而另一些表有一个包含版本号的向量。
alter table my_table
set derived_label = get_label(score,version,null);
alter table my_table2
set derived_label = get_label(score,null,vector);
我收到以下错误
Unsupported subquery type cannot be evaluated