У меня есть бизнес-сценарий, в котором я пытаюсь выбрать данные в столбце на основе значений столбца в другом, а затем преобразовать их в одну запись.
Мои данные:
MEDIUM MEDIUM_DETAIL VALUE
PHN HOME 7843898789
PHN WORK 8979909890
PHN MOBILE 9899876776
EML PRIMARY abc@abc.com
EML ALTERNATE alt@abc.com
Требуется отображать PHN & EML в виде двух столбцов на основе значений MEDIUM_DETAIL.
Если MEDIUM = 'EML', сначала проверьте MEDIUM_DETAIL = 'PRIMARY' и используйте его значение.Если это NULL, тогда продолжайте проверять 'ALTERNATE' и использовать его значение.Если оба имеют значение null, выведите NULL в столбец EML.
В MEDIUM = 'PHN' сначала проверьте MEDIUM_DETAIL = 'HOME'.Если есть значение, используйте его.Если его значение NULL, перейдите к проверке «РАБОТА» и «МОБИЛЬНЫЙ».Выведите NULL, если все значения равны NULL.
Таким образом, мой вывод в соответствии с приведенным выше примером должен выглядеть следующим образом:
EML PHN
abc@abc.com 7843898789
Я пытался использовать max (decode) ... для транспонирования и даже PIVOT, но эти методы требуют некоторой агрегациии не дают требуемого результата.
Есть предложения, как это сделать?