Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Получить все возможные комбинации цифр / 2 сообщений из 2, страница 1 из 1
11.12.2023, 11:50
    #40138288
Br777
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить все возможные комбинации цифр
Доброго дня!

Подскажите пожалуйста, есть ли возможность из набора записей:
Код: SQL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
select '1Б' as code, 85 as qu, 2 as ans from dual
union all
select '1Б' as code, 85 as qu, 3 as ans from dual
union all
select '1Б' as code, 85 as qu, 4 as ans from dual
union all
select '1Б' as code, 85 as qu, 5 as ans from dual
union all
select '1Б' as code, 87 as qu, 5 as ans from dual
union all
select '1Б' as code, 87 as qu, 6 as ans from dual
Исходный набор:

code qu ans
1Б 85 2
1Б 85 3
1Б 85 4
1Б 85 5
1Б 87 5
1Б 87 6

Запросом получить все возможные комбинации значений "ans" по полю "qu"
Т.е. для qu = 85 нужно получить такие записи:

Требуемый результат:

code qu "ans_list"
'1Б', 85, 2
'1Б', 85, 3
'1Б', 85, 4
'1Б', 85, 5
'1Б', 85, 2;3
'1Б', 85, 2;4
'1Б', 85, 2;5
'1Б', 85, 2;3;4
'1Б', 85, 2;3;5
'1Б', 85, 2;3;4;5
'1Б', 85, 3;4
'1Б', 85, 3;5
'1Б', 85, 3;4;5
'1Б', 85, 4;5

Для qu = 87 нужно получить такие записи:
code qu "ans_list"
'1Б', 87, 5
'1Б', 87, 6
'1Б', 87, 5;6

Подскажите в какую сторону копать?
...
Рейтинг: 0 / 0
11.12.2023, 14:02
    #40138289
Br777
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить все возможные комбинации цифр
Br777 [игнорируется] 

Решение найдено:
Код: SQL
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
with table1 as (select '1Б' as code, 85 as qu, 2 as ans from dual
                union all
                select '1Б' as code, 85 as qu, 3 as ans from dual
                union all
                select '1Б' as code, 85 as qu, 4 as ans from dual
                union all
                select '1Б' as code, 85 as qu, 5 as ans from dual
                )
   select qu, substr(sys_connect_by_path( ans, ';' ), 2, length(sys_connect_by_path( ans, ';' ))) as ans_list
     from table1
   connect by nocycle ans > prior ans
85 2
85 2;3
85 2;3;4
85 2;3;4;5
85 2;3;5
85 2;4
85 2;4;5
85 2;5
85 3
85 3;4
85 3;4;5
85 3;5
85 4
85 4;5
85 5
...
Изменено: 11.12.2023, 14:03 - Br777
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Получить все возможные комбинации цифр / 2 сообщений из 2, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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