"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف يمكنني تسلسل القيم عبر صفوف متعددة في postgresql؟

كيف يمكنني تسلسل القيم عبر صفوف متعددة في postgresql؟

نشر في 2025-02-21
تصفح:612

How Can I Concatenate Values Across Multiple Rows in PostgreSQL?

اتصال قيمة صف البيانات postgresql

]

في عمليات قاعدة البيانات العلائقية ، غالبًا ما يكون من الضروري معالجة البيانات قبل الحصول على النتيجة النهائية. تتمثل المهمة المشتركة في تسلسل قيم صفوف متعددة بناءً على معرفات مشتركة. في postgresql ، توفر الدالة group_concat حلاً بسيطًا لهذا الغرض.

group_concat الدالة

postgresql الإصدار 9.0 وما فوق يقدم group_concat الدالة المجمعة ، والتي تأخذ مجموعة من القيم في عمود وتسلسلها في سلسلة واحدة. group_concat بناء الجملة كما يلي:

GROUP_CONCAT(DISTINCT expression [ORDER BY expression] [separator])

المعلمة:

  • متميزة: (اختياري) منع الإدراج في النتيجة.
  • التعبير: العمود أو التعبير الذي سيتم ربطه.
  • الطلب بواسطة: (اختياري) يحدد ترتيب الانضمام إلى القيم.
  • فاصل: (اختياري) حرف أو سلسلة تستخدم لفصل القيم المتسلسلة. الافتراضي هو الفاصلة (،).

مثال

ضع في اعتبارك الجدول التالي المسمى "sample_data":

معرف value &&&] ] tm99 2 tm99 لتسلسل القيم في العمود "القيمة" لكل "معرف" فريد ، يمكننا استخدام group_concat كما هو موضح أدناه: سيؤدي هذا الاستعلام إلى إنتاج الإخراج التالي: معرف 2،3
حدد المعرف ، group_concat (القيمة) كـ concatenated_values من sample_data مجموعة بواسطة id ؛
concatenated_values ​​
TM99

]

كما ترون ، يتم تسلسل قيم كل "معرف" وفصلها بواسطة الفواصل.
SELECT id, GROUP_CONCAT(value) AS concatenated_values
FROM sample_data
GROUP BY id;
بدءًا من إصدار postgresql 9.0 ، يمكنك استخدام بناء الجملة البديل لـ

group_concat

: حدد معرف ، string_agg (القيمة ، '،') كـ concatenated_values من sample_data مجموعة بواسطة id ؛ group_concat بناء الجملة الموصوف أعلاه. ختاماً group_concat أي بناء جملة للاختيار يعتمد على إصدار postgresql والتفضيلات الشخصية.
هذا بناء الجملة يعادل
باستخدام أو وظائف
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3