Я ломаю голову над этой ошибкой Oracle. Следующий запрос отлично работает:
SELECT
V.PROJECTID,
(SELECT WM_CONCAT(DISTINCT NAME)
FROM TPM_TRAININGPLAN JOIN TPM_DELIVERYMETHODS USING (METHODID)
WHERE PROJECTID=V.PROJECTID
AND VERSIONID=V.VERSIONID) as Methods
FROM TPM_PROJECTVERSION V
Однако я хочу вернуть свой конкантонированный список в алфавитном порядке, потому что я привередлива, как это. Вы думаете, я бы сделал:
SELECT
V.PROJECTID,
(SELECT WM_CONCAT(DISTINCT NAME)
FROM TPM_TRAININGPLAN JOIN TPM_DELIVERYMETHODS USING (METHODID)
WHERE PROJECTID=V.PROJECTID
AND VERSIONID=V.VERSIONID ORDER BY NAME) as Methods
FROM TPM_PROJECTVERSION V
Однако, когда я пытаюсь это сделать, я получаю сообщение об ошибке:
[Error] Script lines: 15-19 ------------------------
ORA-00907: missing right parenthesis
Я могу выполнить запрос в его собственном операторе SELECT, например:
SELECT WM_CONCAT(DISTINCT NAME)
FROM TPM_TRAININGPLAN JOIN TPM_DELIVERYMETHODS USING (METHODID)
WHERE PROJECTID=240
AND VERSIONID=1
ORDER BY NAME
И все работает нормально. Мои скобки более сбалансированы, чем отряд Cirque du Soleil. Почему ошибка?