При использовании
ORDER BY с несколькими столбцами база данных сначала сортирует весь результат по первому указанному столбцу (в данном примере — sales).В результате образуются группы строк с одинаковыми значениями. Например, Mira и Bob оказываются в одной группе, потому что у обоих значение
sales равно 12 000.После этого применяется сортировка по второму столбцу, которая служит для разрешения совпадений внутри каждой такой группы.
Поскольку второй столбец —
age, а сортировка выполняется по возрастанию (ASC), сначала будет выведена Mira (30 лет), а затем Bob.Тот же принцип применяется ко всем строкам, у которых совпадают значения первого столбца сортировки.
Что если совпадают значения и во втором столбце? Если одинаковыми оказываются значения и второго столбца, всё зависит от конкретной СУБД. Некоторые базы данных, особенно при работе с небольшими наборами данных, могут сохранить порядок вставки записей как дополнительный критерий сортировки.
Однако в большинстве случаев, особенно при работе с большими и сложными таблицами, порядок строк с полностью одинаковыми значениями сортируемых столбцов не гарантируется и может быть произвольным.
Совет: если вам важен полностью предсказуемый порядок результатов, всегда добавляйте в
ORDER BY дополнительный столбец с уникальными значениями (например, id). Это обеспечит стабильную и воспроизводимую сортировку.👉 @SQLPortal
