У меня есть бизнес-сценарий, в котором я пытаюсь выбрать данные в столбце на основе значений столбца в другом, а затем перенести его как одну запись.
Мои данные:
MEDIUM MEDIUM_DETAIL VALUE
PHN HOME 7843898789
PHN WORK 8979909890
PHN MOBILE 9899876776
EML PRIMARY [email protected]
EML ALTERNATE [email protected]
Требуется отображать PHN и EML в виде двух столбцов на основе значений MEDIUM_DETAIL.
Если MEDIUM = 'EML', сначала проверьте MEDIUM_DETAIL = 'PRIMARY' и используйте его значение. Если это NULL, перейдите к проверке «ALTERNATE» и используйте его значение. Если оба равны нулю, то в столбце EML напечатайте NULL.
В MEDIUM = 'PHN' сначала проверьте MEDIUM_DETAIL = 'HOME'. Если есть значение, используйте его. Если это NULL, перейдите к проверке «WORK» и «MOBILE». Выведите NULL, если все значения нулевые.
Итак, мой вывод в соответствии с приведенным выше примером должен выглядеть так:
EML PHN
[email protected] 7843898789
Я пытался использовать max(decode)... для транспонирования и даже PIVOT, но эти методы требуют какой-то агрегации и не дают требуемого результата.
Любые предложения о том, как это сделать?