рд╣реЗрд▓реЛ рд╣рд┐рд░реЛрд▓рд╛рдЗрдбреА!
рдордИ рдореЗрдВ, рдореЙрд╕реНрдХреЛ рдиреЗ рдЖрдИрдЯреА рдкреНрд▓реИрдиреЗрдЯ рдУрд▓рдВрдкрд┐рдпрд╛рдб рдХреА рдореЗрдЬрдмрд╛рдиреА рдХреА, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдПрдХ рдирд╛рдорд╛рдВрдХрди "рдУрд░реЗрдХрд▓ рдбреАрдмреАрдПрдордПрд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ" рдерд╛ред рдХрд╛рд░реНрдп рджрд┐рд▓рдЪрд╕реНрдк рдФрд░ рдХрдард┐рди рдереЗ, рдФрд░ рдореИрдВ рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред
рдкрд╣рд▓рд╛ рдХрд╛рд░реНрдп рдЬрд┐рд╕ рдкрд░ рдореИрдВ рдЪрд░реНрдЪрд╛ рдХрд░реВрдВрдЧрд╛ рд╡рд╣ рдЖрда рд░рд╛рдирд┐рдпреЛрдВ рдХреА рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдЗрд╕реЗ рдХреЗрд╡рд▓ рдПрд╕рдХреНрдпреВрдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рд▓ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ рдФрд░ рдЗрд╕рд╕реЗ рдЕрдзрд┐рдХ рдХреБрдЫ рдирд╣реАрдВ, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рдмрд╕ рдЗрд╕ рдХрд╛рд░реНрдп рдХреЛ рдЙрди рд▓реЛрдЧреЛрдВ рдХреА рд╕реВрдЪреА рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВ рд╣рд▓ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЖрдЦрд┐рд░реА рдШрдВрдЯреЗ рдореЗрдВ рдореИрдВрдиреЗ рдЗрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛, рдЬреЛ рдореБрдЭреЗ рдкрд╣рд▓реЗ рд╕реНрдерд╛рди рдкрд░ рд▓рд╛рдпрд╛ рдФрд░ рджреВрд░рд╕рдВрдЪрд╛рд░ рдФрд░ рд░реВрд╕реА рд╕рдВрдШ рдХреЗ рдЬрди рд╕рдВрдЪрд╛рд░ рдордВрддреНрд░реА рдХреЗ рд╣рд╛рдереЛрдВ рд╕реЗ рдПрдХ рдбрд┐рдкреНрд▓реЛрдорд╛ред
рддреЛ, рдХрд╛рд░реНрдп рдХреА рдШреЛрд╖рдгрд╛ рдХреА рдЬрд╛рддреА рд╣реИ, рдЙрддреНрддрд░ рдХреЛ рдлреЙрд░реНрдо рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:
рдП рдмреА рд╕реА рдбреА рдИ рдПрдл рдЬреА рдПрдЪ
--- --- --- --- --- --- --- ---
рдП 7 рдмреА 4 рд╕реА 2 рдбреА 8 рдИ 6 рдПрдл 1 рдЬреА 3 рдПрдЪ 5
рдпрд╣ рдХреИрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
рдкрд╣рд▓реА рдЪреАрдЬрд╝ рдЬреЛ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рд╡рд╣ рдПрдХ рдХреНрд╡реЗрд░реА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ рдЬреЛ рд╢рддрд░рдВрдЬ рдХреА рдмрд┐рд╕рд╛рдд рдХреЗ рд╕рд╛рде рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЧрд▓рдд рдлреИрд╕рд▓реЛрдВ рд╕реЗ рдЗрдВрдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
Oracle рдкрджрд╛рдиреБрдХреНрд░рдорд┐рдд рдкреНрд░рд╢реНрдиреЛрдВ (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд╕реНрддрд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо рдПрдХ рдХреНрд╡реЗрд░реА рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ 1 рд╕реЗ 8 рддрдХ рдХреА рд╕рдВрдЦреНрдпрд╛рдПрдБ рдЬрд╛рд░реА рдХрд░рддреА рд╣реИ:
select level a from dual connect by level <= 8
* This source code was highlighted with Source Code Highlighter .
рдП (рдП 1, рдП 2, ...) рдкрд░ рд░рд╛рдиреА рдХреЗ рд╕рдВрднрд╛рд╡рд┐рдд рд╕реНрдерд╛рди рд╣реИрдВ
рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП рдЖрда рдРрд╕реЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдХреНрд░реЙрд╕ рдЬреНрд╡рд╛рдЗрди рдХрд░рддреЗ рд╣реИрдВ:
select level a from dual connect by level <= 8
cross join
( select level b from dual connect by level <= 8)
cross join
( select level c from dual connect by level <= 8)
cross join
( select level d from dual connect by level <= 8)
cross join
( select level e from dual connect by level <= 8)
cross join
( select level f from dual connect by level <= 8)
cross join
( select level g from dual connect by level <= 8)
cross join
( select level h from dual connect by level <= 8)
* This source code was highlighted with Source Code Highlighter .
рдЗрд╕ рддрд░рд╣ рд╕реЗ рдирд┐рд░реНрдорд┐рдд рдХреНрд╡реЗрд░реА 16777216 рд╡рд┐рдХрд▓реНрдк рджреЗрддреА рд╣реИ, рдЕрд░реНрдерд╛рддреНред рд╡рд┐рдХрд▓реНрдк рдЬрдм 2 рдХрддрд╛рд░реЗрдВ рдПрдХ рд╣реА рдКрд░реНрдзреНрд╡рд╛рдзрд░ рдкрд░ рд╕реНрдерд┐рдд рд╣реЛрддреА рд╣реИрдВред рдЕрдм рдЖрдкрдХреЛ рдПрдХ рд╣реА рдХреНрд╖реИрддрд┐рдЬ рдФрд░ рд╡рд┐рдХрд░реНрдг рдкрд░ 2 рд░рд╛рдирд┐рдпреЛрдВ рдХреЛ рдмрд╛рд╣рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддреЗ рд╣реБрдП, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рдКрд░реНрдзреНрд╡рд╛рдзрд░ рд╕реЗ рд╕рдм рдХреБрдЫ рд╣рдЯрд╛ рджрд┐рдпрд╛:
select 'a' || a A, 'b' || b B, 'c' || c C, 'd' || d D, 'e' || e E, 'f' || f F, 'g' || g G, 'h' || h H
from
(
select a, b, c, d, e, f, g, h ,
case when a = b or a = c or a = d or a = e or a = f or a = g or a = h
then 0
else case when b = c or b = d or b = e or b = f or b = g or b = h
then 0
else case when c = d or c = e or c = f or c = g or c = h
then 0
else case when d = e or d = f or d = g or d = h
then 0
else case when e = f or e = g or e = h
then 0
else case when f = g or f = h
then 0
else case when g = h
then 0
else 1
end
end
end
end
end
end
end chk
from
( select level a from dual connect by level <= 8)
cross join
( select level b from dual connect by level <= 8)
cross join
( select level c from dual connect by level <= 8)
cross join
( select level d from dual connect by level <= 8)
cross join
( select level e from dual connect by level <= 8)
cross join
( select level f from dual connect by level <= 8)
cross join
( select level g from dual connect by level <= 8)
cross join
( select level h from dual connect by level <= 8)
)
where chk = 1
* This source code was highlighted with Source Code Highlighter .
рдЕрдм рдЕрдВрддрд┐рдо рдЪрд░рдг рд╢реЗрд╖ рд╣реИ, рдЬрд┐рд╕ рдкрд░ рдореИрдВрдиреЗ рд╡рд┐рдХрд░реНрдгреЛрдВ рд╕реЗ рд╕рдм рдХреБрдЫ рд╣рдЯрд╛ рджрд┐рдпрд╛:
select 'a' || a A, 'b' || b B, 'c' || c C, 'd' || d D, 'e' || e E, 'f' || f F, 'g' || g G, 'h' || h H
from
(
select a, b, c, d, e, f, g, h ,
case when a = b or a = b - 1 or a = b + 1 or a = c or a = c - 2 or a = c + 2 or a = d or a = d - 3 or a = d + 3 or a = e or a = e - 4 or a = e + 4 or a = f or a = f - 5 or a = f + 5 or a = g or a = g - 6 or a = g + 6 or a = h or a = h - 7 or a = h + 7
then 0
else case when b = c or b = c - 1 or b = c + 1 or b = d or b = d - 2 or b = d + 2 or b = e or b = e - 3 or b = e + 3 or b = f or b = f - 4 or b = f + 4 or b = g or b = g - 5 or b = g + 5 or b = h or b = h - 6 or b = h + 6
then 0
else case when c = d or c = d - 1 or c = d + 1 or c = e or c = e - 2 or c = e + 2 or c = f or c = f - 3 or c = f + 3 or c = g or c = g - 4 or c = g + 4 or c = h or c = h - 5 or c = h + 5
then 0
else case when d = e or d = e - 1 or d = e + 1 or d = f or d = f - 2 or d = f + 2 or d = g or d = g - 3 or d = g + 3 or d = h or d = h - 4 or d = h + 4
then 0
else case when e = f or e = f - 1 or e = f + 1 or e = g or e = g - 2 or e = g + 2 or e = h or e = h - 3 or e = h + 3
then 0
else case when f = g or f = g - 1 or f = g + 1 or f = h or f = h - 2 or f = h + 2
then 0
else case when g = h or g = h - 1 or g = h + 1
then 0
else 1
end
end
end
end
end
end
end chk
from
( select level a from dual connect by level <= 8)
cross join
( select level b from dual connect by level <= 8)
cross join
( select level c from dual connect by level <= 8)
cross join
( select level d from dual connect by level <= 8)
cross join
( select level e from dual connect by level <= 8)
cross join
( select level f from dual connect by level <= 8)
cross join
( select level g from dual connect by level <= 8)
cross join
( select level h from dual connect by level <= 8)
)
where chk = 1
* This source code was highlighted with Source Code Highlighter .
рд╡рд┐рдХрд░реНрдгреЛрдВ рд╕реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рдХрд╛рд▓рдирд╛ рдмрд╣реБрдд рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ, рдЖрдк рдПрдмреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдУрд▓рдВрдкрд┐рдХ рдХреА рднреАрдбрд╝ рдореЗрдВ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реБрдЖ, рдЦрд╛рд╕рдХрд░ рдЬрдм рд╕реЗ рдореИрдВрдиреЗ рд╕рдордп рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рд╕реЗ 2 рдорд┐рдирдЯ рдкрд╣рд▓реЗ рдЬрд╡рд╛рдм рднреЗрдЬрд╛ рдерд╛ред
рдпрд╣ рд╕рдорд╛рдзрд╛рди рдмрд┐рд▓реНрдХреБрд▓ рдХрд╛рдиреВрдиреА рд╣реИ рдФрд░ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рднреА 92 рд╕рдорд╛рдзрд╛рди рджреЗрддрд╛ рд╣реИред
UPD: "рдЕрд╕рд╛рдорд╛рдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ" рдХреА рдУрд░ рдЕрдЧреНрд░рд╕рд░