PostgreSQL CASE – руководство и примеры использования

PostgreSQL предоставляет оператор CASE, который позволяет выполнять условные операции внутри запроса. Оператор CASE позволяет легко изменять результат запроса в зависимости от различных условий.

Синтаксис оператора CASE в PostgreSQL выглядит следующим образом:


CASE
  WHEN condition_1 THEN result_1
  WHEN condition_2 THEN result_2
  ...
  WHEN condition_n THEN result_n
  ELSE result
END

В этом выражении "condition_1", "condition_2", и так далее - это условия, которые нужно проверить, а "result_1", "result_2" и так далее - это результаты, которые нужно вернуть, если условия соответствуют.

Примеры кода на основе вопроса:

Пример 1: Использование оператора CASE для создания нового столбца


SELECT name, 
  CASE
    WHEN age < 18 THEN 'Молодой'
    WHEN age >= 18 AND age < 60 THEN 'Взрослый'
    ELSE 'Пожилой'
  END AS category
FROM users;

В этом примере случаи (conditions) сравнивают возраст (age) каждого пользователя и возвращают категорию в соответствии с его возрастом. Затем создается новый столбец category, который содержит категорию каждого пользователя.

Пример 2: Использование оператора CASE с агрегатными функциями


SELECT city, 
  COUNT(*),
  CASE
    WHEN COUNT(*) > 1000 THEN 'Много пользователей'
    WHEN COUNT(*) > 100 AND COUNT(*) <= 1000 THEN 'Среднее количество пользователей'
    ELSE 'Мало пользователей'
  END AS user_count_category
FROM users
GROUP BY city;

В этом примере мы вычисляем общее количество пользователей в каждом городе, используя агрегатную функцию COUNT(*), а затем сравниваем это значение с помощью оператора CASE. Результирующий столбец user_count_category будет содержать категорию количества пользователей в каждом городе.

Пример 3: Использование оператора CASE в предложении ORDER BY


SELECT name, age
FROM users
ORDER BY 
  CASE WHEN age < 18 THEN age END DESC,
  CASE WHEN age >= 18 AND age < 60 THEN age END ASC,
  CASE WHEN age >= 60 THEN age END DESC;

В этом примере мы сортируем пользователей по возрасту с помощью оператора CASE. Вначале сортируются пользователи с возрастом меньше 18 лет по убыванию, затем пользователи с возрастом от 18 до 60 лет по возрастанию и, наконец, пользователи с возрастом 60 лет и старше по убыванию. Оператор CASE здесь используется в предложении ORDER BY для определения порядка сортировки.

В заключение, оператор CASE в PostgreSQL очень мощный инструмент для выполнения условных операций внутри запроса. Он позволяет легко изменять результаты запроса в зависимости от различных условий и может быть использован в различных сценариях для обработки данных в более гибком и удобном формате.

Похожие вопросы на: "postgresql case "

Программирование на Java: основы, синтаксис и примеры
IPython: интерактивная оболочка для Python
Robin Round - интересные факты и информация
Git log: история коммитов и изменений
XML в Excel: конвертация данных в несколько простых шагов
Выбор и опции c select
SQL TRIM: удаление пробелов из строк в базе данных
Неверный пароль - что делать?
Длина массива: полезные методы и примеры работы
Заглавные буквы CSS