परीक्षण नहीं किया गया क्योंकि आपने परीक्षण डेटा प्रदान नहीं किया (तालिका AC_XXXX
. से ):
(Oracle 11 PIVOT क्लॉज का उपयोग करके)
select *
from ( select emp_id, seq_nr, name
from ac_xxxx
where emp_id = '874830' )
pivot ( max(name) for seq_nr in (3 as seq3name, 4 as seq4name, 21 as seq21name,
22 as seq22name, 23 as seq23name, 24 as seq24name, 25 as seq25name)
)
;
Oracle 10 या इससे पहले के लिए, पिवट "हाथ से" किया जाता था, जैसे:
select max(emp_id) as emp_id, -- Corrected based on comment from OP
max(case when seq_nr = 3 then name end) as seq3name,
max(case when seq_nr = 4 then name end) as seq4name,
-- etc. (similar expressions for the other seq_nr)
from ac_xxxx
where emp_id = '874830'
;
या, emp_id
max()
. के भीतर होने की आवश्यकता नहीं है अगर हम group by emp_id
add जोड़ते हैं - जो तब एक अलग लेकिन संबंधित प्रश्न के लिए WHERE क्लॉज के बिना भी काम करेगा।