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