Узнать нужную колонку

Kagasira
Дата: 18.10.2015 18:59:57
Всем привет. Подскажите, пож, можно ли как-то узнать, в какой колонке есть определенная запись.
Например, таблица с колонками
1 2 3 4 5 6 7 и т.д.
во всех значение 'N'. и в одной или нескольких есть значение 'Y'. Можно ли как-то вернуть только те колонки из строки, где значение равно 'Y'?
Dimitry Sibiryakov
Дата: 18.10.2015 19:22:15

Kagasira
Например, таблица с колонками
1 2 3 4 5 6 7 и т.д.

Разработчику этой БД - руки оторвать.
Все колонки слить в одну.
После этого задача становится тривиальной.

Posted via ActualForum NNTP Server 1.5

Kagasira
Дата: 18.10.2015 19:27:10
Dimitry Sibiryakov,

я так написал к примеру. каждая колонка означает что-то определенное. просто я знаю, что в какой-то из колонок изменилось значение и даже знаю его, но хотелось бы сразу видеть, в какой колонке.
Alexander_Ttl
Дата: 18.10.2015 19:39:26
Kagasira,
with t1 as
(select 'N' p1, 'Y' p2, 'N' p3 from dual
union all select 'Y' p1, 'Y' p2, 'N' p3 from dual
union all select Null p1, 'Y' p2, 'N' p3 from dual)
select n, mod(rn-1,3)+1 colnum from (select n, rownum rn from 
(select nvl(p1,'X') p1,nvl(p2,'X') p2,nvl(p3,'X') p3 from t1) a
unpivot (n for nn in (p1,p2,p3) )) where n='Y' ;
Kagasira
Дата: 18.10.2015 20:28:03
Alexander_Ttl,

интересно, но немного не то. по данному запросу мне не возвращает конкретно те колонки из нужной таблицы...
JDS
Дата: 18.10.2015 23:08:27
Member, так Дмитрий подсказал же вроде вариант, слить колонки в одну.
Например, достаешь из словаря все колонки в динскл создаешь запрос, в котором все кэти колонки сливаешь в одну строку, при чем в таком формате (сам придумаешь) чтобы, обернув в еще один запрос, в итоге оставить только данные нужных колонок в каждой строке (реплейсами теми же) с индексами только беда будет)
otvetchik
Дата: 19.10.2015 07:25:45
Kagasira, приведи пример данных и желаемый результат
EDUARD_2
Дата: 19.10.2015 07:30:56
Kagasira,

мб в какой записи одна из колонок равна значению Y?

select * from tbl where col1='Y' or col2='Y' or ... or colN='Y'
Kagasira
Дата: 19.10.2015 09:11:53
EDUARD_2,

Да, по сути запрос такой. Только одно но, колонок может быть много. И таблиц тоже несколько, думал над каким-то универсальным запросом, чтобы не перечислять колонки. + можно же все названия колонок получить другим запросом
Kagasira
Дата: 19.10.2015 09:16:59
otvetchik,

Например табл
1 2 3 4 5 6 7
N N N Y N YN

Ожидаемый: мне показало, что в 4 и 6 колонках Y. Чтоб не глазами искать, а сразу понимать, что именно там.