Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

SQL क्वेरी परिणाम में स्तंभ मानों को स्तंभ नामों के रूप में सेट करना

यह एक पिवट टेबल . के साथ किया जाता है . 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 कथन बनाने की आवश्यकता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. GROUP_BYs के दो बाएं जॉइन में से GROUP_CONCAT से अजीब डुप्लिकेट व्यवहार

  2. डेटाबेस पंक्ति टुपल में पूर्णांकों में 'L' प्रत्यय क्यों होता है?

  3. mysql एक क्रमबद्ध सरणी के भीतर क्वेरी का चयन करें

  4. PHPMyAdmin के साथ उपयोगकर्ता 'रूट' @ 'लोकलहोस्ट' के लिए प्रवेश निषेध

  5. मैं MySQL में एक पंक्ति जनरेटर कैसे बनाऊं?