Oracle SQL:自我联接和自我查找

时间:2018-12-10 23:14:04

标签: self-join

需要帮助。我在这里将我的要求放在简单的步骤中。我有如下数据。

with x as (
select 'a=x AND b=y AND c=z' C1, 'a' C2, '100' C3 from dual union all
select 'a=x AND b=y AND c=z' C1, 'b' C2, '200' C3 from dual union all
select 'a=x AND b=y AND c=z' C1, 'c' C2, '300' C3 from dual union all
select 'a=x AND d=y AND c=z' C1, 'd' C2, '400' C3 from dual union all
select 'a=x AND e=y AND c=z' C1, 'e' C2, '500' C3 from dual 
)
select * from x;

我的输出如下:

     C1              C2   C3
------------------------------
a=x AND b=y AND c=z   a 100
a=x AND b=y AND c=z   b 200
a=x AND b=y AND c=z   c 300
a=x AND d=y AND c=z   d 400
a=x AND e=y AND c=z   e 500

我正在寻找查询以获取如下所示的输出。我在一个列(C1)中有一个条件,在同一表格的不同列(C2和C3)中也有查找数据。如果列C2中存在任何字符串,我想用列C3中的值替换C1中的值。

100=x AND 200=y AND 300=z     a    100
100=x AND 200=y AND 300=z     b    200
100=x AND 200=y AND 300=z     c    300
100=x AND 400=y AND 300=z     d    400
100=x AND 500=y AND 300=z     e    500

我的确切要求是,我有一个表,其中的列包含上述WHERE条件(C1)。他们在条件中使用了业务列名称,并且同一表中的DB(C3)中有第二列具有业务名称(C2),第三列具有实际物理列名称。我正在寻找查询,该查询可以通过将C2列替换为C3列中的相应值来替换C1中的公司名称。

0 个答案:

没有答案