Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Запрос для поиска значения настройки / 8 сообщений из 8, страница 1 из 1
28.04.2017, 01:42
    #39445803
Терентий
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос для поиска значения настройки
Подскажите как написать запрос, для поиска значения настройки, с помощью иерархического запроса и без.
Поиск настройки должен быть осуществлен по принципу максимального соответствия по критериям (K1,K2,K3) и вверх по дереву,
т.е. если есть, то выбрать настройку по всем трём критериям,
если нет, то по двум,
если нет, то по одному,
если нет, то взять общее значение.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
CREATE TABLE TUN
(
  ID NUMBER, 
  PARENT_ID NUMBER,
  K1 VARCHAR2(100),
  K2   VARCHAR2(100), 
  K3  VARCHAR2(100),  
  VALUE    VARCHAR2(100),
  CONSTRAINT PK_TUN_ID PRIMARY KEY (ID)
);

insert into TUN(ID,PARENT_ID,K1,K2,K3,VALUE)
values (1,null,null,null,null,'Value common');

insert into TUN(ID,PARENT_ID,K1,K2,K3,VALUE)
values (2,1,'class1',null,null,'Value class1');
               
insert into TUN(ID,PARENT_ID,K1,K2,K3,VALUE)
values (3,2,'class1','obj1',null,'Value class1 obj1');

insert into TUN(ID,PARENT_ID,K1,K2,K3,VALUE)
values (4,2,'class1','obj2',null,'Value class1 obj2');

insert into TUN(ID,PARENT_ID,K1,K2,K3,VALUE)
values (5,3,'class1','obj1','prop1','Value class1 obj1 prop1');

insert into TUN(ID,PARENT_ID,K1,K2,K3,VALUE)
values (6,3,'class1','obj1','prop2','Value class1 obj1 prop2');

select id, parent_id, rpad(' ', (level-1)*2) || VALUE, level, sys_connect_by_path(id, '/') path,K1,K2,K3
from TUN
connect by prior id = parent_id
start with parent_id is null
...
Рейтинг: 0 / 0
28.04.2017, 07:27
    #39445827
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос для поиска значения настройки
ТерентийПоиск настройки должен быть осуществлен по принципу максимального соответствия по критериям (K1,K2,K3) и вверх по дереву, http://www.bugtraq.ru/forum/faq/general/smart-questions.html] RTFM
Не хватает примеров ожидаемого результата, чтобы пояснить "принцип максимального соответствия".
...
Рейтинг: 0 / 0
28.04.2017, 09:37
    #39445874
Терентий
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос для поиска значения настройки
ElicТерентийПоиск настройки должен быть осуществлен по принципу максимального соответствия по критериям (K1,K2,K3) и вверх по дереву, http://www.bugtraq.ru/forum/faq/general/smart-questions.html] RTFM
Не хватает примеров ожидаемого результата, чтобы пояснить "принцип максимального соответствия".

На вход запросу передается три значения: K1_Val,K2_Val,K3_Val,
каждое из которых может быть либо задано, либо NULL.
Критерий соответствия - K1 = K1_Val или K1 is NULL, для остальных аналогично.

Двигаясь по дереву от листа к корню, найти первую запись (и вернуть VALUE),
которая удовлетворяет критерию соответствия, как описано выше,
по каждой колонке K1,K2,K3.

Надо сделать это одним запросом, с использованием иерархического запроса и без него.
...
Рейтинг: 0 / 0
28.04.2017, 09:48
    #39445878
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос для поиска значения настройки
ТерентийНадо сделать это одним запросом, с использованием иерархического запроса и без него.А где твои попытки?
...
Рейтинг: 0 / 0
28.04.2017, 14:28
    #39446153
Терентий
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос для поиска значения настройки
ElicТерентийНадо сделать это одним запросом, с использованием иерархического запроса и без него.А где твои попытки?

Видимо мой вопрос, поставил в тупик, сообщество здешних гуру.
...
Рейтинг: 0 / 0
28.04.2017, 14:32
    #39446164
j2k
j2k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос для поиска значения настройки
ТерентийElicпропущено...
А где твои попытки?

Видимо мой вопрос, поставил в тупик, сообщество здешних гуру.
Здесь на понт взять не получится...
...
Рейтинг: 0 / 0
28.04.2017, 14:37
    #39446170
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос для поиска значения настройки
Терентий,

А проблема-то в чём?
...
Рейтинг: 0 / 0
28.04.2017, 15:59
    #39446230
Терентий
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос для поиска значения настройки
envТерентий,

А проблема-то в чём?

Да вот задали такой вопрос не собеседовании, ответить не смог.
Теперь хочу для себя разобраться, как это можно сделать.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Запрос для поиска значения настройки / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]