powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Запрос для поиска значения настройки
8 сообщений из 8, страница 1 из 1
Запрос для поиска значения настройки
    #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
Запрос для поиска значения настройки
    #39445827
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТерентийПоиск настройки должен быть осуществлен по принципу максимального соответствия по критериям (K1,K2,K3) и вверх по дереву, http://www.bugtraq.ru/forum/faq/general/smart-questions.html] RTFM
Не хватает примеров ожидаемого результата, чтобы пояснить "принцип максимального соответствия".
...
Рейтинг: 0 / 0
Запрос для поиска значения настройки
    #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
Запрос для поиска значения настройки
    #39445878
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТерентийНадо сделать это одним запросом, с использованием иерархического запроса и без него.А где твои попытки?
...
Рейтинг: 0 / 0
Запрос для поиска значения настройки
    #39446153
Терентий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ElicТерентийНадо сделать это одним запросом, с использованием иерархического запроса и без него.А где твои попытки?

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

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

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

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

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


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