Oracle Database 11g Release 2 introduces a new feature called Recursive Subquery Factoring with the help of which you can solve your Sudoku.
To solve this Sudoku you first have to transform this to a single string by appending all rows together:(give exact amount of spaces)
“53  7    6  195    98    6 8   6   34  8 3  17   2   6 6    28    419  5    8  79”
with x( s, ind ) as( select sud, instr( sud, ' ' )  from ( select '53 7 6 195 98 6 8 6 34 8 3 17 2 6 6 28 419 5 8 79' sud from dual )  union all  select substr( s, 1, ind - 1 ) || z || substr( s, ind + 1 )  , instr( s, ' ', ind + 1 )  from x  , ( select to_char( rownum ) z  from dual  connect by rownum <= 9       ) z  where ind > 0  and not exists ( select null  from ( select rownum lp                          from dual  connect by rownum <= 9                        )  where z = substr( s, trunc( ( ind - 1 ) / 9 ) * 9 + lp, 1 )  or z = substr( s, mod( ind - 1, 9 ) - 8 + lp * 9, 1 )  or z = substr( s, mod( trunc( ( ind - 1 ) / 3 ), 3 ) * 3  + trunc( ( ind - 1 ) / 27 ) * 27 + lp  + trunc( ( lp - 1 ) / 3 ) * 6                                   , 1 )                 ))select sfrom xwhere ind = 0/The output:
534678912672195348198342567859761423426853791713924856961537284287419635345286179
This string can be transformed back to a nice display of the solution.
Adopted from blog


 
