Eine Möglichkeit ein Sudoku per SQL in Oracle zu lösen.
with a(b,c) as ( select d, instr(d,'0') from (select '405002700600900000000030090200006005300000000079004800006200008050000200000058647' d -- EXTREM --'597410802030250100200608503459102630786009210000740000975004301823071006064300098' d -- EASY --'010000000080000000020005100090730200531090060040506319000600007900002000278000694' d -- MEDIUM --'020003010005000894608090000032700000050020900900061030000000080070200650000000740' d -- HARD from dual) union all select substr(b,1,c-1) ||z|| substr(b,c+1), instr(b,'0',c+1) from a, (select to_char(rownum) z from dual connect by rownum <= 9)z where c > 0 and not exists (select null from (select rownum e from dual connect by rownum <= 9) where z = substr(b,trunc((c-1)/9)*9+e,1) or z = substr(b,mod(c-1,9)-8+e*9,1) or z = substr(b,mod(trunc((c-1)/3),3)*3 +trunc((c-1)/27)*27+e +trunc((e-1)/3)*6,1))) select b from a where c = 0; /