[Oracle] Вчера подкинули интересную задачку, вот
на олимпиаду собрался?
зы: задача решена, но хочется увидеть наикрасивейшее решение
Правильно?
осталось решить часть с Ораклом
to :
Я вижу ты тоже зря время не теряешь
1. Надо найти закономерность и написать еще пару рядов.это ж вроде стандартная пирамида
ну в том смысле что она в класических учебниках описана
2. Потом построить числовую пирамиду с помощью Оракл.на pl/sql это делается также как на обычном языке программирования, т.е. элементарно
хочется это получить чиста на селектах?
По предыдущему ряду построить следующий на селектах можно.
P.S. Структуру не раскурил еще
Сомнительно, что такое можно наваять на селектах...или ты пошутил или не знаком с оракл
Вобще, структура простая, как три рубля.
Чтоб select выдавал N первых рядов, где N - параметр select`а.
Ну приведи тогда примерный ход решения.гугла нет?
вбивая в гугл 31131211131221 получаем описание алгоритма
вбивая в гугле 31131211131221 oracle получаем несколько решений этой задачки
Вот, кстати, и статья.
И как я забыл, что это Конвей?
И как я забыл, что это Конвей?
вот вам и селект, который мне показался наикрасивейшим:
with t as (
select level n from dual connect by level <= 11
)
select n,q
from t
model
dimension by (n)
measures (cast('' as varchar2(4000 s,cast('' as varchar2(4000 q)
rules iterate (1000)
(
q[any] order by n=nvl(s[cv-1],1
s[any] order by n= s[cv]||
length(regexp_substr(nvl(s[cv-1],'1''(\d)\1*',1,iteration_number+1||
substr(regexp_substr(nvl(s[cv-1],'1''(\d)\1*',1,iteration_number+11,1)
)
Тебе то он может и показался наикрасивейшим, но вот для меня это очередной повод задуматься о своих знаниях по Oracle
и показалось, что селектик будет работать только для 10-ки и выше.
с другой стороны, а нахрена эти знания, если запрос жутко непереносимый получается?
а что разве есть еще что-то кроме оракла?
а что, разве нет? Хотя бы МС и Постгре
Вспомнилась поговорка про молоток и гвозди
если запрос жутко непереносимый получается?Нафиг не надо. Видел как пытаются делать все универсально - получается как обычно через одно место.
MS SQL в ближайшем времени видимо будет вполне серьезно конкурировать с Oracle.
Видел как пытаются делать все универсально - получается как обычно через одно местода ладно тебе. Вот тут в соседнем треде HQL упоминался - скажешь "через одно место"?
У нас в фирме недавно data layer портировали с грёбанного Firebird на Oracle - намучались изрядно. А если где придётся портировать код типа вышеприведённого на какой-нибудь MSSQL - это легче будет сразу повеситься.
Честно, я не совсем понял, что там хотели (я таким программированием не занимаюсь)
> с ... Firebird на Oracle - намучались изрядно
Хе-хе, разумеется. А как ты хотел?
Мне очень нравится по этому поводу первая глава из Кайт - Оракл для профессионалов, где Кайт вопрос независимости приложения от БД поднимает.
Честно, я не совсем понял, что там хотелине так важно, что хотели, важно что независимость от диалекта СУБД достигается в довольно высокой степени
MS SQL в ближайшем времени видимо будет вполне серьезно конкурировать с Oracle.это почему?
По процентному соотношению вакансий MS SQL уже равняется Ораклу в Мск.
По процентному соотношению вакансий MS SQL уже равняется Ораклу в Мск.о
вот это уже реальные данные
Просто слишком часто спотыкался именно на MS SQL вакухи.
Оставить комментарий
fester
Вот числовая пирамида1
11
21
1211
111221
312211
13112221
1113213211
31131211131221
1. Надо найти закономерность и написать еще пару рядов.
2. Потом построить числовую пирамиду с помощью Оракл.