根据输入返回不同列值的函数

鲍勃

这是一张水果-

FILTER  A   B   C
Apple   0   3   6
Orange  1   4   7
Apricot 2   5   8

是否可以创建一个函数,为苹果(0)返回 A 列,为橙子(4)返回 B 列,为杏(8)返回 C 列?

SELECT Fruit_Function('Apple') FROM dual; --RESULT 0.
SELECT Fruit_Function('Orange') FROM dual; --RESULT 4.
SELECT Fruit_Function('Apricot') FROM dual; --RESULT 8.

现在我有这样的功能

CREATE OR REPLACE FUNCTION Fruit_Function (v_id integer, v_filter varchar2)
RETURN varchar2 as

    v_rp varchar2(500);

BEGIN
    SELECT ASSIGNEE INTO v_rp
    FROM FRUITS a
    WHERE a.id = v_id AND a.filter = v_filter;

    RETURN v_rp;
END Fruit_Function;

此函数返回列名,但不返回实际值。

戈登·利诺夫

创建视图!

create view v_t as
    select t.*,
           (case when filter = 'Apple' then a
                 when filter = 'Orange' then b
                 when filter = 'Apricot' then C 
           end) as result
    from t;

然后,将视图用于包中的查询。

您还可以将该列作为计算列直接添加到表中:

alter table t add result number generated always as
           (case when filter = 'Apple' then a
                 when filter = 'Orange' then b
                 when filter = 'Apricot' then C 
            end);

使用这种方法,该列看起来就像是表的一部分。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据调用函数的次数返回不同的值

相交函数根据输入顺序返回不同的模式

根据条件从不同的列返回不同的值 pandas

模拟函数/对象,并根据输入/条件返回值

根据不同列中的值返回值

Rust函数根据类型注释返回不同类型的值

根据函数中的参数数量返回不同的值

PySpark Dataframe根据函数返回值创建新列

MYSQL函数根据列的连续值返回记录

是否有 R 函数根据列返回行值?

根据输入返回不同的输出组合

根据多个选择输入返回不同的内容

键入一个根据可选输入返回两种不同类型的函数

Python TypeHint一个根据输入返回不同类型的函数

如何模拟axios api调用以根据输入返回不同的值?

任意函数-根据输入生成返回类型

根据输入返回标量或数组的Fortran函数

函数在不同的配置上返回不同的值

根据 forloop 中不同函数调用返回的值构建数据框

VBA:比较区域范围不同列上的SUMIFS并根据布尔值返回Min或Max的函数

我可以根据函数是用作左值还是右值来为返回引用的函数运行不同的逻辑吗?

Jasmine Spy根据参数返回不同的值

根据变量的值返回不同的代码

Singleton属性根据调用返回不同的值

如何根据条件返回不同的数组值?

根据列值选择不同的列

我如何获得一个函数以根据通过该函数传递的内容返回不同的值?

根据参数缩小函数的返回值

根据函数返回值选择列表