Я новичок в Oracle SQL, и недавно обнаружил, что мой оператор 'Order By' игнорируется в сценариях P / L SQL при создании временных таблиц, если я не размещаю порядок по столбцам в начале списка выбранных столбцов.
т.е. этот оператор возвращает неупорядоченный набор результатов, мой порядок по игнорируемому (кажется, фактически сортировка по столбцу A.ACCOUNT_ID - числовой / целочисленный уникальный идентификатор)
SELECT
A.ACCOUNT_ID,
PRODUCT_CATEGORY,
PRODUCT_NAME,
PRICE,
COST,
QUANTITY
FROM
TABLEA A
LEFT JOIN TABLEB B ON A.ACCOUNT_ID = B.ACCOUNT_ID
ORDER BY
PRODUCT_CATEGORY,
PRODUCT_NAME
Но это работает хорошо, упорядочив набор результатов, как задумано и написано
SELECT
PRODUCT_CATEGORY,
PRODUCT_NAME,
A.ACCOUNT_ID,
PRICE,
COST,
QUANTITY
FROM
TABLEA A
LEFT JOIN TABLEB B ON A.ACCOUNT_ID = B.ACCOUNT_ID
ORDER BY
PRODUCT_CATEGORY,
PRODUCT_NAME
Есть идеи, почему это происходит? Я помню, что на сервере SQL происходило что-то похожее (то есть CTE будет предупреждать порядок, игнорируемый в общих табличных выражениях или что-то в этом роде), - но в этом случае нет CTE - пример выражения end, который я здесь имею, идет в конце скрипт, который создает несколько временных таблиц и создает окончательную временную таблицу, в которой я хочу упорядочить набор результатов.
Буду признателен за любую мудрость, которой вы все должны поделиться.
Спасибо!