البرمجة

دمج أسماء الأعمدة بقيم متكررة في SQL

لحل هذه المشكلة في SQL Server، يمكنك استخدام الدالة STUFF مع الدالة FOR XML PATH(”) لدمج الأسماء بفاصلة. إليك كيفية تنفيذ ذلك:

sql
SELECT COLUMN_B, STUFF(( SELECT ', ' + COLUMN_A FROM your_table_name WHERE COLUMN_B = t.COLUMN_B FOR XML PATH('') ), 1, 2, '') AS concatenated_names FROM your_table_name t GROUP BY COLUMN_B;

يقوم هذا الاستعلام بتحديد الأسماء التي تنتمي إلى نفس القيمة في COLUMN_B، ثم يقوم بدمجها بواسطة فاصلة. يجب عليك استبدال your_table_name باسم الجدول الخاص بك.

المزيد من المعلومات

بالطبع! هنا بعض المعلومات الإضافية حول الاستعلام الذي قدمته وكيفية عمله:

  1. SELECT DISTINCT COLUMN_B: تستخدم هذه الجملة لاختيار القيم المميزة في COLUMN_B. إذا كان هناك قيم متكررة في COLUMN_B، فإن استخدام DISTINCT يضمن أن كل قيمة مميزة ستظهر مرة واحدة فقط في النتيجة النهائية.

  2. STUFF(): هذه الدالة تقوم بإجراء عملية إدراج واستبدال النص في سلسلة النصوص. في هذا الاستعلام، تُستخدم STUFF() لإزالة الفاصلة الأولى والمسافة الزائدة التي تأتي بعدها وتستبدلها بشيء آخر، مثل فاصلة واحدة. الوظيفة الرئيسية لها هنا هي ضبط تنسيق النتائج النهائية.

  3. SELECT ‘, ‘ + COLUMN_A: هذه الجملة تقوم بدمج الأسماء في COLUMN_A بفاصلة ومسافة. يتم استخدامها كجزء من جملة الاستعلام الفرعية الموجودة داخل STUFF(). تقوم هذه الجملة بإرجاع سلسلة النصوص التي تتكون من اسم العمود المطلوب مع فاصلة ومسافة.

  4. FOR XML PATH(”): هذه الجملة تُستخدم لتحويل الصفوف المحددة من النتائج إلى سلسلة نصية واحدة. في هذا السياق، يتم استخدامها لإنشاء سلسلة نصية تتضمن أسماء COLUMN_A المدمجة بفواصل.

  5. GROUP BY COLUMN_B: تُستخدم هذه الجملة لتجميع الصفوف بناءً على القيم في COLUMN_B. هذا يعني أن النتائج ستتم فقط لكل قيمة فريدة في COLUMN_B.

من خلال استخدام هذا الاستعلام، يمكنك الحصول على النتائج المطلوبة حيث يتم تجميع الأسماء بناءً على القيم المتكررة في COLUMN_B وترتيبها بواسطة فواصل.

مقالات ذات صلة

زر الذهاب إلى الأعلى

هذا المحتوى محمي من النسخ لمشاركته يرجى استعمال أزرار المشاركة السريعة أو تسخ الرابط !!