oracle如何根据另一张表中的一行的值来选择一列

Posted

技术标签:

【中文标题】oracle如何根据另一张表中的一行的值来选择一列【英文标题】:how to select a column based on the value of a row from another table in oracle 【发布时间】:2015-06-24 22:26:06 【问题描述】:

我有 2 张桌子,如下所示。我想根据第一个表中行的值从第二个表中选择一列

表 1 表 2 id pos1 pos2 id1 id2 id3 位置 41a1 A1T1 V1 1122 41a1 99a1 A1T1V1 1133 A1T1 V2 1133 41a2 99a2 A1T1V2 99a3 A1T1 V3 1144 41a3 99a3 A1T1V3 41a2 A1T1 V4 41a3 A1T1 V5

如何在oracle中进行选择查询

select t1.id,(t2.id1 or t2.id2 or t2.id3) from t1,t2 where t1.pos1||t1.pos2= t2.position; 

t2.id1 t2.id2 或 t2.id3 基于 if t1.id 的值,类似于下面的 if 循环:

如果 t1.pos1 ='A1T1' and substr(t2.position,1,4)='A1T1' and substr(t1.id,1,2)='41' 然后 t2.id2 否则 substr(t1,id,1,2)='99' 然后 t2.id3 别的 t2.id1

【问题讨论】:

【参考方案1】:

听起来你想要一个case 声明

select t1.id,
       (case when t1.pos1 ='A1T1' 
              and substr(t2.position,1,4)='A1T1' 
              and substr(t1.id,1,2)='41' 
             then t2.id2
             when substr(t1,id,1,2)='99' 
             then t2.id3 
             else t2.id1 
         end)
   ...

【讨论】:

以上是关于oracle如何根据另一张表中的一行的值来选择一列的主要内容,如果未能解决你的问题,请参考以下文章

Oracle中的多行插入查询(从一张表中选择多行并插入到另一张表中[重复]

根据另一列的存在更新列

循环遍历一张表中的列值并将另一列中的 COUNTIF 值粘贴到另一张表中

oracle中,如何在一张表插入数据,使得插入数据的某些字段为其他表中的数据

Oracle查询一张表插入另一张表中

oracle中怎么如何把两张表中查询到的数据求和,