我具有以下解码功能,其中包含硬编码值:
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子的价值?
答案 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