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

كيفية إنشاء قوائم مفصولة بفاصلة بأسماء التطبيقات المرتبطة بها في SQL؟

نشر في 2025-02-06
تصفح:759

How to Create Comma-Separated Lists of Associated Application Names in SQL?

قم بإنشاء قائمة مفصولة باستخدام استعلام SQL

]

عندما تحتوي جداول متعددة على بيانات التطبيق والموارد ، فإن المهمة المشتركة هي سرد ​​جدول يسرد جميع أسماء الموارد وأسماء التطبيقات المرتبطة بفاصلة. لتحقيق ذلك مع استعلام واحد SQL ، اتبع هذه الخطوات:

mysql:

SELECT r.name,
         GROUP_CONCAT(a.name SEPARATOR ',') AS application_names
    FROM RESOURCES r
    JOIN APPLICATIONSRESOURCES ar ON ar.resource_id = r.id
    JOIN APPLICATIONS a ON a.id = ar.app_id
GROUP BY r.name

SQL Server (2005) :

SELECT r.name,
       STUFF((SELECT ','   a.name
               FROM APPLICATIONS a
               JOIN APPLICATIONRESOURCES ar ON ar.app_id = a.id
              WHERE ar.resource_id = r.id
           GROUP BY a.name
            FOR XML PATH(''), TYPE).value('text()[1]','NVARCHAR(max)'), 1, LEN(','), '') AS application_names
 FROM RESOURCES r

SQL Server (2017) :

SELECT r.name,
         STRING_AGG(a.name, ',') AS application_names
    FROM RESOURCES r
    JOIN APPLICATIONSRESOURCES ar ON ar.resource_id = r.id
    JOIN APPLICATIONS a ON a.id = ar.app_id
GROUP BY r.name

Oracle: يوفر Oracle مجموعة متنوعة من خيارات التجميع/الاتصال السلسلة. يرجى الرجوع إلى وثائق بناء جملة ومتطلبات محددة.

تربط هذه الاستفسارات جدول "الموارد" مع جداول "ApplicationsResources" و "Applications" لاسترداد اسم المورد واسم التطبيق المرتبط. يتم بعد ذلك استخدام وظائف "Group_Concat" أو "الأشياء" أو "String_agg" لتوصيل اسم التطبيق بالقائمة المفصولة لكل مورد. لتحسين قابلية القراءة ، أضفنا الاسم المستعار application_names إلى عمود النتيجة.

أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3