oracle sql to get all possible combinations in a table -


hello guys have small predicatement has me bit stumped. have table following.(this sample of real table. use explain since original table has sensitive data.)

create table test01(  tuid varchar2(50), fund varchar2(50), org  varchar2(50)); insert test01 (tuid,fund,org) values ('9102416ab','1xxxxx','6xxxxx'); insert test01 (tuid,fund,org) values ('9102416cc','100000','67130'); insert test01 (tuid,fund,org) values ('955542224','1500xx','67150'); insert test01 (tuid,fund,org) values ('915522211','1000xx','67xxx'); insert test01 (tuid,fund,org) values ('566653456','xxxxxx','xxxxx'); insert test01 (tuid,fund,org) values ('9148859fff','1xxxxxx','x6xxx'); 

table data after insert

"tuid"                        "fund"                        "org"                          "9102416ab"                   "1xxxxx"                      "6xxxxx"                       "9102416cc"                   "100000"                      "67130"                        "955542224"                   "1500xx"                      "67150"                        "915522211"                   "1000xx"                      "67xxx"                        "566653456"                   "xxxxxx"                      "xxxxx"                        "9148859fff"                  "1xxxxxx"                     "x6xxx"    

the "x"'s wild card elements*( inherit , cannot change table format)* make query following

select tuid test01 fund= '100000' , org= '67130' 

however retrieve records have have segements in them including 'x's

in other words expected output here   "tuid"                        "fund"                        "org"                          "9102416ab"                   "1xxxxx"                      "6xxxxx"                       "9102416cc"                   "100000"                      "67130"                        "915522211"                   "1000xx"                      "67xxx"                        "566653456"                   "xxxxxx"                      "xxxxx"   

i have started write massive sql statement have 12 statement in since have compare org , fund every possible way. im headed. im wondering if there better way.

select * test02 fund = '100000' , org = '67130' or fund '1%' , org '6%' or fund '1%' , org '67%' or fund '1%' , org '671%' or fund '1%' , org '6713%' or fund '1%' , org '67130' or fund '10%' , org '6%'...etc  /*seems there should better way..*/ 

can give me hand coming sql statement...

by way notice

 "9148859fff"                  "1xxxxxx"                     "x6xxx"    

is excluded expected resul since second digit in org "6" , im looking looks "67130"

you can use replace() function replace x wildcard character _ , use like:

select *  test01 '100000' replace(replace(fund, 'x', '_'), 'x', '_')   ,  '67130' replace(replace(org,  'x', '_'), 'x', '_') ; 

tested @ sql-fiddle


Comments

Popular posts from this blog

jquery - How can I dynamically add a browser tab? -

node.js - Getting the socket id,user id pair of a logged in user(s) -

keyboard - C++ GetAsyncKeyState alternative -