Oracle解码功能-动态搜索

时间:2020-02-04 08:28:57

标签: oracle

我具有以下解码功能,其中包含硬编码值:

decode(s.manure_type,
                   'OA','Oats',
                   'V','Velvet Beans',
                   'O','Other',
                   'N','None',
                   'SW','Soya Beans Without Grains',
                   'SR','Sunn Hemp',
                   'C','Cowpeas',
                   'S','Soya Beans With Grains',
                   'F','Forage Sorghum',
                   'J','Jap Millet',
                   'G','Grazing Vetch') s_manure_type

我希望解码是动态的。所有值都来自另一个表。来自另一个表的初始表达式也是如此。是否有可能从数据库中获取燕麦,天鹅绒豆,其他,无,大豆无谷物,Sunn大麻,pea豆,有谷物的大豆,饲用高粱,日本小米和放牧V子的价值?

2 个答案:

答案 0 :(得分:0)

但是,您甚至不需要DECODE-它将是JOIN,例如

select a.something,
       b.manure_name
from tab1 a join manure b on a.manure_type = b.manure_type

答案 1 :(得分:0)

您不需要“ DECODE”,您可以这样做:

create table prm (
id varchar2(2),
name varchar2(100));

insert into prm values ('OA','Oats');
insert into prm values ('V','Velvet Beans');

select v.name from manure_types s, prm v
where s.manure_type = v.id