यह एक मानक पिवट क्वेरी है:
SELECT uc.uut_sn,
MAX(CASE
WHEN uc.characteristic_name = 'char_name_1' THEN uc.characteristic_value
ELSE NULL
END) AS char_name_1,
MAX(CASE
WHEN uc.characteristic_name = 'char_name_2' THEN uc.characteristic_value
ELSE NULL
END) AS char_name_2,
MAX(CASE
WHEN uc.characteristic_name = 'char_name_3' THEN uc.characteristic_value
ELSE NULL
END) AS char_name_3,
FROM unit_characteristics uc
GROUP BY uc.uut_sn
इसे गतिशील बनाने के लिए, आपको का उपयोग करना होगा MySQL का डायनेमिक SQL सिंटैक्स जिसे रेडीड स्टेटमेंट कहा जाता है
. इसके लिए दो प्रश्नों की आवश्यकता है - पहले को characteristic_name
. की एक सूची मिलती है मान, ताकि आप उपयुक्त स्ट्रिंग को CASE अभिव्यक्तियों में जोड़ सकें, जैसा कि आप मेरे उदाहरण में अंतिम क्वेरी के रूप में देखते हैं।