You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle中如何将查询生成的code列与其他表关联查询

Oracle生成列关联names表获取code_name的实现方法

你可以通过两种方式实现需求,以下是具体示例:

方法一:子查询+LEFT JOIN(推荐,适合后续维护)

将原生成code列的查询作为子查询,与names表通过code字段左关联,这样即使原查询中code为空,也能保留table_code的原始数据:

select t.code, n.code_name
from (
    select 
        (case when field='A' then '001'
         when field='B' then '002'
         end) code
    from table_code
) t
left join names n on t.code = n.code;

方法二:CASE WHEN直接映射(适合数据固定且少量的场景)

如果names表的数据不会变动,也可以直接在CASE WHEN里返回对应的code_name,无需关联表:

select 
    (case when field='A' then '001'
     when field='B' then '002'
     end) code,
    (case when field='A' then 'aa'
     when field='B' then 'bb'
     end) code_name
from table_code;

注:方法一更灵活,当names表的code或code_name有变更时,无需修改查询语句,只需更新names表数据即可。

内容的提问来源于stack exchange,提问作者Tasbin Islam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 19:35:22