Комментарии (1)
🐱
deepseek-v3.2PrepBro AI6 апр. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
Сортировка в SQL и командной строке
Команды сортировки в SQL
В SQL для сортировки значений используется оператор ORDER BY. Он указывается в конце запроса SELECT и определяет порядок возврата строк.
Базовый синтаксис:
SELECT column1, column2
FROM table_name
ORDER BY column1 [ASC|DESC], column2 [ASC|DESC];
ASC(по умолчанию) — сортировка по возрастанию (от A до Z, от 0 до 9).DESC— сортировка по убыванию (от Z до A, от 9 до 0).
Примеры сортировки:
-- Сортировка по одной колонке по возрастанию
SELECT * FROM users ORDER BY last_name;
-- Сортировка по убыванию
SELECT product_name, price FROM products ORDER BY price DESC;
-- Сортировка по нескольким колонкам (сначала по стране, затем по городу)
SELECT first_name, last_name, city, country
FROM employees
ORDER BY country ASC, city ASC;
-- Сортировка по выражению или порядковому номеру колонки в SELECT
SELECT first_name, last_name, salary * 1.1 as new_salary
FROM employees
ORDER BY 3 DESC; -- Сортировка по 3-ей колонке в результате (new_salary)
Особые случаи:
-- Сортировка NULL значений (по умолчанию они считаются наибольшими)
SELECT name, bonus
FROM employees
ORDER BY bonus NULLS FIRST; -- или NULLS LAST
-- Сортировка по условию CASE (кастомный порядок)
SELECT order_id, status
FROM orders
ORDER BY CASE status
WHEN 'Critical' THEN 1
WHEN 'High' THEN 2
WHEN 'Medium' THEN 3
WHEN 'Low' THEN 4
ELSE 5
END;
Команды сортировки в командной строке (Linux/Unix)
В терминале для сортировки текстовых данных из файлов или потоков используется утилита sort.
Базовое использование:
# Сортировка строк файла в лексикографическом порядке
sort filename.txt
# Сортировка вывода другой команды
ps aux | sort -k 3 # Сортировка процессов по 3-ему полю (CPU)
# Числовая сортировка
sort -n numbers.txt
# Сортировка в обратном порядке
sort -r data.txt
Ключевые опции утилиты sort:
-n— числовая сортировка (по умолчанию лексикографическая, т.е. '10' будет перед '2').-r— обратный порядок (по убыванию).-k N— сортировка по конкретному полю (колонке). Нумерация с 1.-t ','— указание разделителя полей (по умолчанию пробел/табуляция).-u— вывод только уникальных строк (аналогsort | uniq).-f— игнорирование регистра (case-insensitive).-M— сортировка по названиям месяцев (JAN, FEB, ...).
Сложные примеры:
# Сортировка CSV-файла по 2-ой колонке как числам
sort -t ',' -k 2,2n data.csv
# Сортировка по 3-ему полю, затем по 1-ому
sort -k 3,3 -k 1,1 report.txt
# Просмотр ТОП-5 самых больших файлов в директории
du -sh * | sort -hr | head -5
# -h правильно сортирует "человеко-читаемые" размеры (1K, 2M, 3G)
Практическое применение в тестировании
Как QA Engineer, я часто использую сортировку для:
- Верификации данных в БД после выполнения операций.
- Анализа логов — поиск ошибок, временных меток.
- Подготовки тестовых данных в определённом порядке.
- Сравнения результатов — сортировка вывода двух систем для поэлементного сравнения.
- Работы с API — проверка сортировки в ответах endpoints с параметрами
?sort=field_name.
Важно помнить:
- В SQL сортировка больших результатов (
ORDER BYбезLIMIT) может быть ресурсоёмкой операцией. - В командной строке
sortпо умолчанию чувствителен к регистру и использует лексикографическую сортировку, что для чисел даст неожиданный результат без флага-n. - Для сложной сортировки в Bash может потребоваться комбинация
sort,awk,cutи других утилит.