Я понимаю, что это нелепый запрос, но я пытаюсь собрать несколько записей обратно в один столбец вместе с небольшим количеством буквального текста.
Итак, с учетом таблицы, подобной этой
REGION CITY SID
-------------------
1 Chicago 1234
1 Palatine 567
1 Algonquin 234
1 Wauconda 987
Я хотел бы увидеть одну запись со столбцом, другие столбцы, например регион, в порядке, но один столбец, подобный этому,
<option value="1234">Chicago</option><option value="567">Palatine</option><option value="234">Algonquin</option><option value="987">Wauconda</option>
Есть мысли о том, как это сделать?Я использую Oracle 9i и не могу сделать это в PL / SQL
Хорошо, формат таблицы немного изменился, но идея та же
COUNTRY STORECODE STORE_NAME
------------------------------
USA 1234 Chicago
USA 567 Palatine
CAN 987 Toronto
Итак, я нашелэтот код проходит по ссылкам, перечисленным
SELECT COUNTRY,
LTRIM(MAX(SYS_CONNECT_BY_PATH(STORECODE,','))
KEEP (DENSE_RANK LAST ORDER BY curr),',') AS COUNTRY_HTML
FROM (SELECT COUNTRY,
STORECODE,
ROW_NUMBER() OVER (PARTITION BY COUNTRY ORDER BY STORECODE) AS curr,
ROW_NUMBER() OVER (PARTITION BY COUNTRY ORDER BY STORECODE) -1 AS prev
FROM tablename)
GROUP BY COUNTRY
CONNECT BY prev = PRIOR curr AND COUNTRY = PRIOR COUNTRY
START WITH curr = 1;
И когда я запускаю его, я вижу этот вывод
COUNTRY COUNTRY_HTML
--------------------
USA 1234,567
CAN 987
Я думал просто о том, чтобы сделать внутренний выбор из другого выбора, где я делаюмой конкат STORECODE и STORE_NAME вместе с html-кодом, который требуется вот так ...
SELECT COUNTRY,
LTRIM(MAX(SYS_CONNECT_BY_PATH(RECORD_HTML,','))
KEEP (DENSE_RANK LAST ORDER BY curr),',') AS COUNTRY_HTML
FROM (SELECT COUNTRY,
RECORD_HTML,
ROW_NUMBER() OVER (PARTITION BY COUNTRY ORDER BY RECORD_HTML) AS curr,
ROW_NUMBER() OVER (PARTITION BY COUNTRY ORDER BY RECORD_HTML) -1 AS prev
FROM (SELECT COUNTRY, '<option value="' || STORECODE || '">' || STORE_NAME || '</option>' AS RECORD_HTML FROM tablename))
GROUP BY COUNTRY
CONNECT BY prev = PRIOR curr AND COUNTRY = PRIOR COUNTRY
START WITH curr = 1;
Хотя наша интерфейсная среда принимает запрос, когда я пытаюсь просмотреть результаты, я получаю сообщение об ошибке: ресурснедействительным.Возможно, вам придется заново создать запрос на исправление перед просмотром.
Я знаю, что ошибка, вероятно, бесполезна, но есть идеи, почему моя версия не работает?
Спасибо!