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 "

Python сортировка списка
String в String C: примеры и руководство
Остаток от деления: как его вычислить и применить
Realloc - увеличение размера памяти в программировании
Ожидание: роль, применение и влияние на нашу жизнь
Исключение SQL: причины и способы обработки
Sorry, данное имя пользователя недействительно
Как сделать кнопку в HTML
CS50 IDE: мощная среда разработки для программирования
Python: вычисление среднего арифметического