Как несколько строк могут быть связаны в одну в Oracle, не создавая хранимую процедуру? [дубликат]

Я предпочитаю следующее, так как оно учитывает вкладку. Если вставка отсутствует, она все равно будет прокручиваться вверх, так как вставка будет 0.

tableView.setContentOffset(CGPoint(x: 0, y: -tableView.contentInset.top), animated: true)
55
задан Rob van Wijk 2 July 2009 в 19:35
поделиться

3 ответа

Существует много способов агрегирования строк, но самый простой - это функция, определяемая пользователем. Попробуйте это для способа, который не требует функции. Обратите внимание, что без функции нет простого пути.

Это кратчайший маршрут без пользовательской функции: (он использует функции ROW_NUMBER () и SYS_CONNECT_BY_PATH)

SELECT questionid,
       LTRIM(MAX(SYS_CONNECT_BY_PATH(elementid,','))
       KEEP (DENSE_RANK LAST ORDER BY curr),',') AS elements
FROM   (SELECT questionid,
               elementid,
               ROW_NUMBER() OVER (PARTITION BY questionid ORDER BY elementid) AS curr,
               ROW_NUMBER() OVER (PARTITION BY questionid ORDER BY elementid) -1 AS prev
        FROM   emp)
GROUP BY questionid
CONNECT BY prev = PRIOR curr AND questionid = PRIOR questionid
START WITH curr = 1;
28
ответ дан 26 November 2019 в 17:39
поделиться

Легко:

SELECT question_id, wm_concat(element_id) as elements
FROM   questions
GROUP BY question_id;

Песонально протестировано на 10g; -)

Из http://www.oracle-base.com/articles/10g/StringAggregationTechniques.php

37
ответ дан 26 November 2019 в 17:39
поделиться

Этот OTN-поток содержит несколько способов агрегирования строк, включая сравнение производительности: http://forums.oracle.com/forums/message.jspa?messageID=1819487# 1819487

2
ответ дан 26 November 2019 в 17:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: