Порядок Oracle по умолчанию по поведению - PullRequest
1 голос
/ 01 ноября 2019

В запросе на выборку, когда мы добавляем order by для некоторого столбца и в возвращаемом наборе результатов, этот столбец содержит одинаковое значение для некоторых строк, каково будет поведение сортировки этих строк?

1 Ответ

4 голосов
/ 01 ноября 2019

Нет определенного поведения сортировки, в общем случае, по крайней мере, стандарт ANSI не требует, чтобы поставщик базы данных предоставил его. Вы могли бы обнаружить, что определенный приказ имеет тенденцию подчиняться, но лучшее, что здесь можно сделать, это просто второй уровень сортировки, чтобы разорвать связь, т. Е. Использовать:

SELECT *
FROM yourTable
ORDER BY
    col1,
    col2;    -- break the tie

Поэтому, если бы ваши данные были:

col1 | col2
1    | 1
1    | 2
2    | 4
2    | 1

, то приведенный выше запрос вернул бы отсортированный результат, как вы ожидаете.

...