تقنيات تجميع السلاسل النصية
في بعض الأحيان يكون من الضروري تجميع البيانات من عدد من الصفوف في صف واحد ، وإعطاء قائمة بالبيانات المرتبطة بقيمة محددة. باستخدام جدول SCOTT.EMP كمثال ، قد نرغب في استرداد قائمة الموظفين لكل قسم. فيما يلي قائمة بالبيانات الأساسية ونوع المخرجات التي نرغب في إرجاعها من استعلام مجمع.
وظيفة LISTAGG التحليلية في إصدار 11 جرام 2
تم تقديم الوظيفة التحليلية LISTAGG في Oracle 11g الإصدار 2 ، مما يجعل من السهل جدًا تجميع السلاسل. الشيء الجميل في هذه الوظيفة هو أنها تسمح لنا أيضًا بترتيب العناصر في القائمة المتسلسلة. إذا كنت تستخدم 11g الإصدار 2 ، فيجب عليك استخدام هذه الوظيفة لتجميع السلاسل.
COLUMN employees FORMAT A50
SELECT deptno, LISTAGG(ename, ',') WITHIN GROUP (ORDER BY ename) AS employees
FROM emp
GROUP BY deptno;
DEPTNO EMPLOYEES
---------- --------------------------------------------------
10 CLARK,KING,MILLER
20 ADAMS,FORD,JONES,SCOTT,SMITH
30 ALLEN,BLAKE,JAMES,MARTIN,TURNER,WARD
3 rows selected.
المصدر
https://oracle-base.com/articles/misc/string-aggregation-techniques
العودة إلي oracle tips and tricks