| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> c.d.o.misc -> HELP: recursive query
I have a table as follows:
SQL> desc MyTable
Name Null? Type
------------------------------- -------- ----
KEYFIELD NOT NULL VARCHAR2(12)
COUNTER NOT NULL NUMBER(10)
VARNAME VARCHAR2(15)
VARVALUE VARCHAR2(32)
The data is such that the varName field contains the name of a variable (prepended with a '$'), and the varValue is the value of the variable, which itself can be a variable.
Example data:
KEYFIELD COUNTER VARNAME VARVALUE
-------- ------- ---------- ----------
ABC 0 $D123_PP $D123_OIN
ABC 1 $D123_OIN $GB98_FAR
ABC 2 $GB98_FAR PPTVH_486
DEF 0 $J472_X $LKE30_X
DEF 1 $J472_PP $LKE30_DWF
DEF 2 $LKE30_DWF $TR_UIF_3
DEF 3 $TR_UIF_3 NHG23_77X
Note that the varValue which is a variable for one varName is the varName for another row.
The varName which has the tag '%_PP' is the main search criteria for each keyField. Is it possible to get the final varValue that is not a variable in a single query, rather than doing a recursive search? I.e. instead of
select varValue FROM MyTable WHERE keyField = 'ABC' AND
varName LIKE '%_PP';
KEYFIELD VARNAME VARVALUE
--------- --------- ---------
ABC $D123_PP $D123_OIN
select varValue FROM MyTable WHERE keyField = 'ABC' AND
varName = '$D123_OIN';
KEYFIELD VARNAME VARVALUE
--------- --------- ---------
ABC $D123_OIN $GB98_FAR
select varValue FROM MyTable WHERE keyField = 'ABC' AND
varName = '$GB98_FAR';
KEYFIELD VARNAME VARVALUE
--------- --------- ---------
ABC $GB98_FAR PPTVH_486
is there a single query, like...?
SELECT keyValue, varValue
FROM Mytable
WHERE keyField = 'ABC'
AND varName like '%_PP'
AND <varValue is ultimate value>;
KEYFIELD VARNAME VARVALUE
--------- --------- ---------
ABC $D123_PP PPTVH_486
Or ...
SELECT keyValue, varValue
FROM Mytable
WHERE varName like '%_PP'
AND <varValue is ultimate value for keyValue>;
KEYFIELD VARNAME VARVALUE
--------- --------- ---------
ABC $D123_PP PPTVH_486
DEF $J472_PP NHG23_77X
Thanks,
Michelle
Received on Wed May 12 1999 - 10:03:58 CDT
![]() |
![]() |