- •Дана символьная строка, в которой отдельные слова разделены любым количеством пробелов.
- •//Условие задачи:
- •Определить список последовательностей подчиненности от преподавателей, не имеющих начальника, до преподавателей, не имеющих подчиненных. Результат представить в виде:
- •Посчитать кол-во 29.02 между двумя заданными датами
- •Показать накопленную сумму сотрудников по их отделам.
- •Вывести все даты за 2011 год и соответствующие дни недели без использования иерархических запросов и Model.
- •В произвольной строке, состоящей из символьных элементов, разделенных запятыми, отсортировать элементы по алфавиту. Например, символьную строку
- •Определить временной интервал между заданной и текущей датами. Результат вывести в виде: ## лет ## мес ## дней, где # обозначает цифру.
- •Вывести фамилии сотрудников, начальники которых работают в другой стране.В результат вывести:
- •Для таблиц схемы, имеющих индексы вывести:
- •Определить дату начала ближайшего к заданной дате Уимблдонского турнира, который начинается за шесть недель до первого понедельника августа
- •Для каждой таблицы схемы вывести:
- •Определить сколько лет, месяцев и дней осталось до президентских выборов в сша, которые проводятся по високосным годам в первый понедельник после первого вторника ноября.
- •Дана таблица из двух столбцов: 1 - строка, 2 – число. Требуется написать запрос, в результате
- •Написать запрос, выдающий отчёт о суммарных выплатах сотрудникам, непосредственно
- •Определить временной интервал между датами. Результат вывести в виде: ## лет ## мес ## дней, где # обозначает цифру.
- •Вывести фамилии всех сотрудников через запятую столько раз сколько символов в их фамилии
- •Для каждой таблицы схемы вывести:
- •Создать запрос для определения сумм зарплат сотрудников от сотрудников, не имеющих менеджеров, до сотрудников, не имеющих подчиненных.
- •Выборы президента сша
- •Плотный ранг
- •Для всех связей между таблицами схемы вывести:
- •Из заданных наборов символов исключить те наборы символов, которые отличаются только порядком. Например, заданы наборы:
- •В названии отдела вывести только второе слово, если название состоит из двух и более слов, иначе вывести первое слово.
- •Создать запрос для определения списка городов, в которых расположены департаменты, суммарная заработная плата в которых выше средней суммарной заработной платы в департаментах этого города.
- •Имеется таблица:
- •Определить сумму цифр в произвольной символьной строке.
- •Для каждой таблицы схемы вывести:
- •Для каждой таблицы схемы вывести:
- •Сформировать отчёт, содержащий номер отдела, название отдела, имена и фамилии сотрудников, а также их зарплату в виде:
- •Условия нет
- •Условия нет
- •Вывести фамилии сотрудников, получающих зарплату выше средней в отделе, в котором они работают.
- •Не помню задание, похоже на костяна, мишаню и лену
- •Для всех таблиц схемы вывести:
- •Задания нет
- •Сумма цифр в строке
- •Создать запрос для вывода фамилий, последних должностей и дат приема на работу сотрудников, информация о работе
- •"Определить ближайший к заданной дате год, когда 29 февраля придется на воскресенье. "
- •В таблицу записана информация об удачных и неудачных попытках подключения к базе данных.
"Определить ближайший к заданной дате год, когда 29 февраля придется на воскресенье. "
UNDEFINE startdate;
SELECT TO_CHAR(DateL, 'YYYY')
FROM
(
SELECT TO_DATE('&&startdate') - 1 + level DateL , level
FROM dual
CONNECT BY LEVEL < 11000
)
WHERE TO_CHAR(DateL, 'dd-mm') = '29-02'
AND TO_CHAR(DateL, 'day') = 'воскресенье'
AND rownum < 2
Вообще, можно использовать и более точное число (10958). Получается оно вот откуда: есть
некий алгоритм судного дня, который, среди прочего, говорит о том, что каждый год происходит
смещение дня недели вперед на один день (в високосный - на два). То есть каждый цикл между високосными
годами происходит смещение на пять дней вперед (что эквивалентно смещению на два дня назад).
Таким образом, день недели совпадет через 7 циклов, что соответствует 7*4 = 28 лет.
28*365 + 7 (7 - високосные дни). Также, в 1700, 1800, 1900 годах високосного не было, и промежуток
между високосными годами был шесть лет. Прибавим еще два года к числу:
28* 365 + 7 + 365*2 ~ 11 000
Описание отправлялось на почту.
11absd1
11ogkem2
25plt2
250gem1
сортировать,чтобы сначала сортировака по числам, и если числа одинаковые, то сортировка по буквам
два варианта
select str
from tab1
ORDER BY TO_NUMBER(REPLACE(TRANSLATE(STR, 'qwertyuioplkjhgfdsazxcvbnm', ' '), ' ')),
REPLACE(TRANSLATE(STR, '0123456789', ' '), ' ')
select str
from tab1
order by to_number(replace(str, ltrim(str, '0123456789'))),
ltrim(str, '0123456789')
В таблицу записана информация об удачных и неудачных попытках подключения к базе данных.
(Пользователь, Время, Удачно/неудачно) Требуется получить список пользователей которые совершили подряд три неудачные попытки подключения.
create table Connected
(USERS varchar2(30),
DATE_CON date,
RESULT varchar(4));
commit;
insert into Connected values ('andsko', sysdate, 'fail');
insert into Connected values ('andsko', sysdate, 'fail');
insert into Connected values ('andsko', sysdate, 'ok');
insert into Connected values ('andsko', sysdate, 'fail');
insert into Connected values ('andsko', sysdate, 'fail');
insert into Connected values ('andsko', sysdate, 'ok');
insert into Connected values ('ivapopo', sysdate, 'fail');
insert into Connected values ('ivapopo', sysdate, 'fail');
insert into Connected values ('ivapopo', sysdate, 'fail');
insert into Connected values ('ivapopo', sysdate, 'fail');
insert into Connected values ('ivapopo', sysdate, 'ok');
insert into Connected values ('ivapopo', sysdate, 'fail');
insert into Connected values ('ivapopo', sysdate, 'fail');
insert into Connected values ('ivapopo', sysdate, 'fail');
insert into Connected values ('trolface', sysdate, 'fail');
insert into Connected values ('trolface', sysdate, 'fail');
insert into Connected values ('trolface', sysdate, 'fail');
insert into Connected values ('petmis', sysdate, 'fail');
insert into Connected values ('petmis', sysdate, 'fail');
insert into Connected values ('trolface', sysdate, 'ok');
insert into Connected values ('petmis', sysdate, 'fail');
select distinct tab1.USERS
from (select USERS, DATE_CON, RESULT, rownum r
from (select USERS, DATE_CON, RESULT, rownum z from Connected
order by USERS, z) order by r) tab1
left join
(select USERS, DATE_CON, RESULT, rownum r
from (select USERS, DATE_CON, RESULT, rownum z from Connected
order by USERS, z) order by r) tab2
on tab1.USERS = tab2.USERS and tab1.r = tab2.r - 1
left join
(select USERS, DATE_CON, RESULT, rownum r
from (select USERS, DATE_CON, RESULT, rownum z from Connected
order by USERS, z) order by r) tab3
on tab1.USERS = tab3.USERS and tab1.r = tab3.r - 2
where tab1.RESULT = 'fail' and tab2.RESULT = 'fail' and tab3.RESULT = 'fail';
Для таблицы схемы, имеющих индексы вывести:
1)имя таблицы
2)имя первого(по алфавиту неуникального индекса)
3)количество столбцов первого неуникального индекса
4)имя первого(по алфавиту) уникального индекса
5)количество столбцов первого уникального индекса
6)общее число неуникальных индексов
7)общее число уникальных индексов
with NonUnInd as
--неуникальные индексы с количеством столбцов в каждом
(select sNONUNIQUE.Table_name as t, sNONUNIQUE.Index_name as i, sIND_COL.cntI as s
from
(select Table_name, Index_name
from (select Table_name, min(r1) mr1
from (select Table_name, Index_name, rownum r1
from user_indexes
where uniqueness like 'NONUNIQUE'
order by Table_name, Index_name)
group by Table_name) s1
left join
(select Index_name, rownum r2
from user_indexes
where uniqueness like 'NONUNIQUE'
order by Table_name, Index_name) s2
on s1.mr1=s2.r2) sNONUNIQUE
left join
(select Index_name, count(Index_name) as cntI
from user_ind_columns
group by Index_name) sIND_COL
on sNONUNIQUE.Index_name = sIND_COL.Index_name),
------------------------уникальные индексы с количеством столбцов в каждом
UnInd as
(select sUNIQUE.Table_name as t, sUNIQUE.Index_name as i, sIND_COL.cntI as s
from
(select Table_name, Index_name
from (select Table_name, min(r1) mr1
from (select Table_name, Index_name, rownum r1
from user_indexes
where uniqueness like 'UNIQUE'
order by Table_name, Index_name)
group by Table_name) s1
left join
(select Index_name, rownum r2
from user_indexes
where uniqueness like 'UNIQUE'
order by Table_name, Index_name) s2
on s1.mr1=s2.r2) sUNIQUE
left join
(select Index_name, count(Index_name) as cntI
from user_ind_columns
group by Index_name) sIND_COL
on sUNIQUE.Index_name = sIND_COL.Index_name),
--------------------общее количество неуникальных
aCountNon as (select Table_name, count(index_name) as co
from user_indexes
where uniqueness like 'NONUNIQUE'
group by Table_name),
---------------------общее количество уникальных
aCountUn as (select Table_name, count(index_name) as co
from user_indexes
where uniqueness like 'UNIQUE'
group by Table_name)
select s1.Table_name as "Table_name", n.i as "First ununque", n.s as "Count of columns FNUI",
u.i as "First unque", u.s as "Count of columns FUI", aC.co as "Count of Nonunique Index",
aC2.co as "Count of Unique Index"
from (select Distinct Table_name from user_indexes) s1
left join NonUnInd n on s1.Table_name = n.t
left join UnInd u on s1.Table_name = u.t
left join aCountNon aC on s1.Table_name = aC.Table_name
left join aCountUn aC2 on s1.Table_name = aC2.Table_name;