Слияние рядов в один ряд - оракул 10 г - PullRequest
0 голосов
/ 24 октября 2011

У меня есть некоторые данные, распределенные по двум таблицам. Вторая таблица хранит данные в номерах строк. Есть ли способ показать номера строк в одном ряду вместо многих? Смотрите скриншот. Line Numbers jumbled

SELECT DISTINCT II.FC,
            II.GN,
            II.PB,
            II.DTI,
            TL.LINENUMBER,
            TL.TEXTLINE
FROM    (   ABC.ITD ITD
       INNER JOIN
          ABC.TEXTLINE TEXTLINE
       ON (ITD.DTI = TEXTLINE.TEXTID))
   INNER JOIN
      ABC.II II
   ON (II.ITEMID = ITD.ITEMID)
WHERE (II.FC = 'J') AND (TEXTLINE.TEXTLINE IS NOT NULL)
ORDER BY ITD.DTI ASC

1 Ответ

1 голос
/ 24 октября 2011

Вам нужно создать функцию для поиска и объединения текстовых строк:

CREATE OR REPLACE FUNCTION FN_APPEND_TEXT(idText IN NUMBER) RETURN VARCHAR2
IS
   CURSOR crsText IS
      SELECT TL.LINENUMBER,
             TL.TEXTLINE
        FROM ABC.TEXTLINE TL
       WHERE TL.TEXTID = idText
         AND TL.TEXTLINE IS NOT NULL
       ORDER BY TL.LINENUMBER ASC;

   strReturn   VARCHAR2(4000);
BEGIN

   FOR recText IN crsText
   LOOP
      strReturn := strReturn || recText.TEXTLINE;
   END LOOP;

   RETURN strReturn;

END FN_APPEND_TEXT;

Затем измените ваш SQL для вызова функции:

SELECT DISTINCT II.FC,
       II.GN,
       II.PB,
       II.DTI,
       FN_APPEND_TEXT(II.DTI) Instructions
  FROM ABC.ITD II
 WHERE II.FC = 'J'
 ORDER BY II.DTI ASC;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...