यह एक पिवट टेबल . के साथ किया जाता है . id
. के आधार पर समूहीकरण , आप CASE
issue जारी करते हैं प्रत्येक मान के लिए विवरण जिसे आप कॉलम में कैप्चर करना चाहते हैं और MAX()
. जैसी किसी चीज़ का उपयोग करें नल को खत्म करने और एक पंक्ति में संक्षिप्त करने के लिए एकत्र करें।
SELECT
id,
/* if col1 matches the name string of this CASE, return col2, otherwise return NULL */
/* Then, the outer MAX() aggregate will eliminate all NULLs and collapse it down to one row per id */
MAX(CASE WHEN (col1 = 'name') THEN col2 ELSE NULL END) AS name,
MAX(CASE WHEN (col1 = 'name2') THEN col2 ELSE NULL END) AS name2,
MAX(CASE WHEN (col1 = 'name3') THEN col2 ELSE NULL END) AS name3
FROM
yourtable
GROUP BY id
ORDER BY id
यहाँ एक कार्यशील नमूना है
नोट:यह केवल उसी तरह काम करता है जैसे col1
. के लिए संभावित मानों की सीमित और ज्ञात संख्या के लिए है . यदि संभावित मानों की संख्या अज्ञात है, तो आपको लूप में गतिशील रूप से SQL कथन बनाने की आवश्यकता है।