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

मैं रेल में GROUP_CONCAT का उपयोग कैसे कर सकता हूं?

जब तक मुझे पता है, कोई group_concat नहीं है रेल में समकक्ष, लेकिन आप includes . का उपयोग कर सकते हैं ऐसा करने के लिए:

continents = Continents
  .joins(:countries, :event_locations)
  .includes(:countries)
  .group("continents.code")

continents.each do |continent| 
  continent.countries.join(",")
end

यह केवल 2 प्रश्नों का उत्पादन करेगा - मुझे पता है, एक के रूप में इतना अच्छा नहीं है, लेकिन मुझे लगता है कि यह "group_concat" के बिना रेल की तुलना में सबसे अच्छा है। दूसरा तरीका कुछ ऐसा होगा:

Country
  .select("countries.id, GROUP_CONCAT(countries.name) as grouped_name")
  .joins(:continents, :event_locations)
  .group("continents.code")

लेकिन अगर आप ऐसा करते हैं, तो आपको अपने डेटाबेस विक्रेता के अनुसार बदलने की जरूरत है।

  • MySQL :group_concat(देशों का नाम)
  • PostgreSQL :string_agg(countries.name, ',')
  • ओरेकल :listagg(countries.name, ',')


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle में रिपीट फंक्शन समकक्ष

  2. Oracle में TO_NUMBER फ़ंक्शन के साथ अजीब समस्या आ रही है

  3. Oracle संग्रहीत कार्यविधि कैसे बनाएं जो विशिष्ट संस्थाओं के साथ-साथ सभी संस्थाओं को वापस कर सके

  4. ऑरैकल में कॉलम द्वारा दो टेबल कॉलम की तुलना कैसे करें

  5. JDBC द्वारा Oracle में निष्क्रिय सत्र