<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: How to solve the 3 Digits Plus 3 Digits Puzzle in SQL</title>
	<atom:link href="http://oraqa.com/2008/11/02/how-to-solve-the-3-digits-plus-3-digits-puzzle-in-sql/feed/" rel="self" type="application/rss+xml" />
	<link>http://oraqa.com/2008/11/02/how-to-solve-the-3-digits-plus-3-digits-puzzle-in-sql/</link>
	<description>Oracle Question and Answer</description>
	<lastBuildDate>Mon, 19 Dec 2011 14:21:07 -0700</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Amalendu Pramanik</title>
		<link>http://oraqa.com/2008/11/02/how-to-solve-the-3-digits-plus-3-digits-puzzle-in-sql/comment-page-1/#comment-329</link>
		<dc:creator>Amalendu Pramanik</dc:creator>
		<pubDate>Mon, 19 Dec 2011 14:21:07 +0000</pubDate>
		<guid isPermaLink="false">http://oraqa.com/?p=283#comment-329</guid>
		<description>
With
D As(
&#160;&#160;&#160;&#160;&#160;Select RowNum N From Dual Connect By Level&lt;=9
)
,N As(
&#160;&#160;&#160;&#160;&#160;Select Replace(Sys_Connect_By_Path(N,&#039;,&#039;),&#039;,&#039;) N
&#160;&#160;&#160;&#160;&#160;From D
&#160;&#160;&#160;&#160;&#160;Where Level=9
&#160;&#160;&#160;&#160;&#160;Connect By NoCycle N!=Prior N
)
Select SubStr(N,1,3)&#124;&#124;&#039;+&#039;&#124;&#124;SubStr(N,4,3)&#124;&#124;&#039;=&#039;&#124;&#124;SubStr(N,7,3) D
From N Where SubStr(N,1,3)+SubStr(N,4,3)=SubStr(N,7,3)
</description>
		<content:encoded><![CDATA[<p>With<br />
D As(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Select RowNum N From Dual Connect By Level&lt;=9<br />
)<br />
,N As(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Select Replace(Sys_Connect_By_Path(N,&#8217;,'),&#8217;,') N<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;From D<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Where Level=9<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Connect By NoCycle N!=Prior N<br />
)<br />
Select SubStr(N,1,3)||&#8217;+'||SubStr(N,4,3)||&#8217;='||SubStr(N,7,3) D<br />
From N Where SubStr(N,1,3)+SubStr(N,4,3)=SubStr(N,7,3)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: newkid</title>
		<link>http://oraqa.com/2008/11/02/how-to-solve-the-3-digits-plus-3-digits-puzzle-in-sql/comment-page-1/#comment-264</link>
		<dc:creator>newkid</dc:creator>
		<pubDate>Thu, 24 Jun 2010 19:14:01 +0000</pubDate>
		<guid isPermaLink="false">http://oraqa.com/?p=283#comment-264</guid>
		<description>&lt;pre&gt;
11GR2:

WITH n AS (
   SELECT ROWNUM n FROM DUAL CONNECT BY ROWNUM&lt;=9
   )
,t (n1,n2,n3,n4,n5,n6,n7,n8,n9,lvl) AS (
   SELECT n,0,0,0,0,0,0,0,0,1
     FROM n
    WHERE n&lt;=4
   UNION ALL
   SELECT t.n1
         ,DECODE(t.lvl,1,n.n,t.n2)
         ,DECODE(t.lvl,2,n.n,t.n3)
         ,DECODE(t.lvl,3,n.n,t.n4)
         ,DECODE(t.lvl,4,n.n,t.n5)
         ,DECODE(t.lvl,5,n.n,t.n6)
         ,DECODE(t.lvl,6,n.n,t.n7)
         ,DECODE(t.lvl,7,n.n,t.n8)
         ,DECODE(t.lvl,8,n.n,t.n9)
         ,t.lvl+1
     FROM t,n
    WHERE n.n NOT IN (n1,n2,n3,n4,n5,n6,n7,n8)
          AND (t.lvl=1 AND n.n&gt;t.n1 AND n.n+t.n1&lt;=9
               OR (t.lvl=2 AND n.n - t.n1- t.n2 IN (0,1))
               OR (t.lvl=4 AND n.n &gt; t.n4)
               OR (t.lvl=5 AND n.n = MOD(t.n4+ t.n5,10))
               OR (t.lvl=7 AND n.n &gt; t.n7)
               OR t.lvl=8 AND n1*100+n7*10+n4 + n2*100+n8*10+n5 = n3*100+n.n*10+n6
               OR t.lvl IN (3,6)
              )
   )
,t2 AS (SELECT * FROM t WHERE lvl=9)
SELECT n1&#124;&#124;n7&#124;&#124;n4&#124;&#124;&#039; + &#039;&#124;&#124;n2&#124;&#124;n8&#124;&#124;n5&#124;&#124;&#039; = &#039;&#124;&#124;n3&#124;&#124;n9&#124;&#124;n6 FROM t2
UNION ALL
SELECT n1&#124;&#124;n7&#124;&#124;n5&#124;&#124;&#039; + &#039;&#124;&#124;n2&#124;&#124;n8&#124;&#124;n4&#124;&#124;&#039; = &#039;&#124;&#124;n3&#124;&#124;n9&#124;&#124;n6 FROM t2
UNION ALL
SELECT n1&#124;&#124;n8&#124;&#124;n4&#124;&#124;&#039; + &#039;&#124;&#124;n2&#124;&#124;n7&#124;&#124;n5&#124;&#124;&#039; = &#039;&#124;&#124;n3&#124;&#124;n9&#124;&#124;n6 FROM t2
UNION ALL
SELECT n1&#124;&#124;n8&#124;&#124;n5&#124;&#124;&#039; + &#039;&#124;&#124;n2&#124;&#124;n7&#124;&#124;n4&#124;&#124;&#039; = &#039;&#124;&#124;n3&#124;&#124;n9&#124;&#124;n6 FROM t2
UNION ALL
SELECT n3&#124;&#124;n7&#124;&#124;n4&#124;&#124;&#039; + &#039;&#124;&#124;n2&#124;&#124;n8&#124;&#124;n5&#124;&#124;&#039; = &#039;&#124;&#124;n1&#124;&#124;n9&#124;&#124;n6 FROM t2
UNION ALL
SELECT n3&#124;&#124;n7&#124;&#124;n5&#124;&#124;&#039; + &#039;&#124;&#124;n2&#124;&#124;n8&#124;&#124;n4&#124;&#124;&#039; = &#039;&#124;&#124;n1&#124;&#124;n9&#124;&#124;n6 FROM t2
UNION ALL
SELECT n3&#124;&#124;n8&#124;&#124;n4&#124;&#124;&#039; + &#039;&#124;&#124;n2&#124;&#124;n7&#124;&#124;n5&#124;&#124;&#039; = &#039;&#124;&#124;n1&#124;&#124;n9&#124;&#124;n6 FROM t2
UNION ALL
SELECT n3&#124;&#124;n8&#124;&#124;n5&#124;&#124;&#039; + &#039;&#124;&#124;n2&#124;&#124;n7&#124;&#124;n4&#124;&#124;&#039; = &#039;&#124;&#124;n1&#124;&#124;n9&#124;&#124;n6 FROM t2
;

&lt;/pre&gt;</description>
		<content:encoded><![CDATA[<pre>
11GR2:

WITH n AS (
   SELECT ROWNUM n FROM DUAL CONNECT BY ROWNUM&lt;=9
   )
,t (n1,n2,n3,n4,n5,n6,n7,n8,n9,lvl) AS (
   SELECT n,0,0,0,0,0,0,0,0,1
     FROM n
    WHERE n&lt;=4
   UNION ALL
   SELECT t.n1
         ,DECODE(t.lvl,1,n.n,t.n2)
         ,DECODE(t.lvl,2,n.n,t.n3)
         ,DECODE(t.lvl,3,n.n,t.n4)
         ,DECODE(t.lvl,4,n.n,t.n5)
         ,DECODE(t.lvl,5,n.n,t.n6)
         ,DECODE(t.lvl,6,n.n,t.n7)
         ,DECODE(t.lvl,7,n.n,t.n8)
         ,DECODE(t.lvl,8,n.n,t.n9)
         ,t.lvl+1
     FROM t,n
    WHERE n.n NOT IN (n1,n2,n3,n4,n5,n6,n7,n8)
          AND (t.lvl=1 AND n.n&gt;t.n1 AND n.n+t.n1&lt;=9
               OR (t.lvl=2 AND n.n - t.n1- t.n2 IN (0,1))
               OR (t.lvl=4 AND n.n &gt; t.n4)
               OR (t.lvl=5 AND n.n = MOD(t.n4+ t.n5,10))
               OR (t.lvl=7 AND n.n &gt; t.n7)
               OR t.lvl=8 AND n1*100+n7*10+n4 + n2*100+n8*10+n5 = n3*100+n.n*10+n6
               OR t.lvl IN (3,6)
              )
   )
,t2 AS (SELECT * FROM t WHERE lvl=9)
SELECT n1||n7||n4||' + '||n2||n8||n5||' = '||n3||n9||n6 FROM t2
UNION ALL
SELECT n1||n7||n5||' + '||n2||n8||n4||' = '||n3||n9||n6 FROM t2
UNION ALL
SELECT n1||n8||n4||' + '||n2||n7||n5||' = '||n3||n9||n6 FROM t2
UNION ALL
SELECT n1||n8||n5||' + '||n2||n7||n4||' = '||n3||n9||n6 FROM t2
UNION ALL
SELECT n3||n7||n4||' + '||n2||n8||n5||' = '||n1||n9||n6 FROM t2
UNION ALL
SELECT n3||n7||n5||' + '||n2||n8||n4||' = '||n1||n9||n6 FROM t2
UNION ALL
SELECT n3||n8||n4||' + '||n2||n7||n5||' = '||n1||n9||n6 FROM t2
UNION ALL
SELECT n3||n8||n5||' + '||n2||n7||n4||' = '||n1||n9||n6 FROM t2
;
</pre>
]]></content:encoded>
	</item>
</channel>
</rss>

