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

SQL GROUP_CONCAT विभिन्न स्तंभों में विभाजित है

आप इसे substring_index() के साथ कर सकते हैं . निम्नलिखित क्वेरी आपकी सबक्वेरी के रूप में उपयोग करती है और फिर इस तर्क को लागू करती है:

select Name, ISOCode_2,
       substring_index(currencies, ',', 1) as Currency1,
       (case when numc >= 2 then substring_index(substring_index(currencies, ',', 2), ',', -1) end) as Currency2,
       (case when numc >= 3 then substring_index(substring_index(currencies, ',', 3), ',', -1) end)  as Currency3,
       (case when numc >= 4 then substring_index(substring_index(currencies, ',', 4), ',', -1) end)  as Currency4,
       (case when numc >= 5 then substring_index(substring_index(currencies, ',', 5), ',', -1) end)  as Currency5,
       (case when numc >= 6 then substring_index(substring_index(currencies, ',', 6), ',', -1) end)  as Currency6,
       (case when numc >= 7 then substring_index(substring_index(currencies, ',', 7), ',', -1) end)  as Currency7,
       (case when numc >= 8 then substring_index(substring_index(currencies, ',', 8), ',', -1) end)  as Currency8
from (SELECT country.Name, country.ISOCode_2, group_concat(currency.name) AS currencies,
             count(*) as numc
      FROM country
      INNER JOIN countryCurrency ON country.country_id = countryCurrency.country_id
      INNER JOIN currency ON currency.currency_id = countryCurrency.currency_id
      GROUP BY country.name
     ) t

व्यंजक substring_index(currencies, ',' 2) मुद्राओं में सूची को दूसरे तक ले जाता है। अमेरिकन सोमोआ के लिए, वह 'US Dollar,Kwanza' . होगा . अगली कॉल -1 . के साथ जैसा कि तर्क सूची के अंतिम तत्व को लेता है, जो कि 'Kwanza' . होगा , जो currencies . का दूसरा तत्व है ।

यह भी ध्यान दें कि SQL क्वेरीज़ कॉलम का एक अच्छी तरह से परिभाषित सेट लौटाती हैं। एक क्वेरी में स्तंभों की एक चर संख्या नहीं हो सकती (जब तक कि आप prepare के माध्यम से डायनेमिक 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. MySQL क्वेरी परिणाम में विशिष्ट पंक्ति कैसे खोजें?

  2. स्क्रॉलपैन पर स्क्लाइट डेटा और ऑटो निर्मित बटन

  3. क्या MySQL INSERT कथन विशाल तालिकाओं में धीमे हैं?

  4. myisam 'चयन' क्वेरी से निपटने के दौरान भी टेबल पर टेबल-लॉक रखें?

  5. मैं MySQL में 'अगर मौजूद नहीं है तो डालें' कैसे कर सकता हूं?