Ich habe eine Oracle-Tabelle namens col_mapping, wobei eine Spalte in dieser Tabelle die Spaltenwerte von Spalten aus einer anderen Tabelle enthält.Verwenden von Spaltenwerten aus einer Tabelle innerhalb einer Where-Klausel
Beispiel Daten der Tabelle:
ID DESCR COL_VALS
------------------------------
1 LABEL COL_1
2 NAME_ADDR COL_2:COL_3
3 SALARY COL4
Basierend auf der obigen Tabelle col_mapping, ich mag nun durch jeden Datensatz in col_mapping gehen und die COL_VALS als Teil meines WHERE-Bedingung in einer anderen Tabelle mit dem Namen verwenden other_tab, das heißt:
select 'Y'
from other_tab
where COL_1 = 'whatever1';
select 'Y'
from other_tab
where (COL_2 = 'whatever2' or COL_3 = 'whatever2');
and finally:
select 'Y'
from other_tab
where COL_4 = 'whatever4';
ich würde im Grunde wie COL_VALS aufzuschlüsseln in einem Zustand, wo und wo es mehr als einen Wert Kolon separa ted, stellen Sie es in eine ODER-Bedingung wie oben beschrieben.
Jede Hilfe, wie man das oben genannte in Oracle erreicht, wäre großartig.
Danke.
, die so gegen alles, was in SQL ist. Sie sollten darüber nachdenken, es komplett neu zu gestalten. –
Haben Sie [Dynamic SQL] (https://oracle-base.com/articles/8i/native-dynamic-sql) ausprobiert? – Hawk
@juergend sehr wahr, aber ich benutze das rein als Teil einer Mapping-Tabelle, die ich verarbeiten muss. – tonyf