Saya memiliki skenario bisnis di mana saya mencoba memilih data di kolom berdasarkan nilai kolom di kolom lain dan kemudian mengubahnya menjadi satu catatan.
Data saya:
MEDIUM MEDIUM_DETAIL VALUE
PHN HOME 7843898789
PHN WORK 8979909890
PHN MOBILE 9899876776
EML PRIMARY [email protected]
EML ALTERNATE [email protected]
Persyaratannya adalah menampilkan PHN & EML sebagai dua kolom berdasarkan nilai MEDIUM_DETAIL.
Jika MEDIUM = 'EML', centang dulu MEDIUM_DETAIL = 'PRIMARY' dan gunakan nilainya. Jika NULL, lanjutkan dengan mencentang 'ALTERNATE' dan gunakan nilainya. Jika keduanya null, maka cetak NULL di kolom EML.
Pada MEDIUM = 'PHN', centang dulu MEDIUM_DETAIL = 'HOME'. Jika ada nilainya, gunakanlah. Jika NULL, lanjutkan dengan mencentang 'WORK' dan 'MOBILE'. Cetak NULL jika semua nilai nol.
Jadi keluaran saya sesuai contoh di atas akan terlihat seperti:
EML PHN
[email protected] 7843898789
Saya mencoba menggunakan max(decode)...untuk mengubah urutan dan bahkan PIVOT tetapi teknik ini memerlukan semacam agregasi dan tidak memberikan hasil yang diperlukan.
Adakah saran tentang cara melakukan hal ini?