Функция SQL Server CHOOSE

В этом руководстве вы узнаете, как использовать функцию SQL Server CHOOSE() для возврата элемента на основе его индекса в списке значений.

Обзор функции SQL Server CHOOSE()

Функция CHOOSE() возвращает элемент из списка элементов по указанному индексу.

Ниже показан синтаксис функции CHOOSE():

CHOOSE( index, elem_1, elem_2 [, elem_n ] )

В этом синтаксисе:

  • Индекс — это целочисленное выражение, которое указывает индекс возвращаемого элемента. Обратите внимание, что индексы элементов начинаются с 1. Это означает, что первый элемент имеет индекс 1, второй элемент имеет индекс 2 и т. д.
  • elem_1, elem_2,… elem_n — это список значений любого типа, разделенных запятыми.

Если индекс равен 1, функция CHOOSE() возвращает elem_1. Если индекс равен 2, функция CHOOSE() возвращает elem_2 и т. д.

Если индекс не является целым числом, он будет преобразован в целое число. В случае, если индекс выходит за пределы списка, функция CHOOSE() вернет NULL.

Примеры функции SQL Server CHOOSE()

Давайте рассмотрим несколько примеров функции CHOOSE().

A) Пример использования функции SQL Server CHOOSE() с литеральными значениями

В этом примере возвращается второй элемент из списка значений:

SELECT 
    CHOOSE(2, 'First', 'Second', 'Third') Result;

Вот что получилось:

Result
------
Second
(1 row affected)

B) Пример использования функции SQL Server CHOOSE() для столбца таблицы

См. следующую таблицу sales.orders из примера базы данных :

В следующем примере функция CHOOSE() используется для возврата статуса заказа на основе значения в столбце order_status таблицы sales.orders:

SELECT
    order_id, 
    order_date, 
    status,
    CHOOSE(order_status,
        'Pending', 
        'Processing', 
        'Rejected', 
        'Completed') AS order_status
FROM 
    sales.orders
ORDER BY 
    order_date DESC;

На следующем рисунке показан частичный результат:

Пример функции SQL Server CHOOSE со столбцом таблицы

В этом примере статус заказа — «Ожидание», «Обработка», «Отклонено» и «Выполнено», если значение order_status равно 1, 2, 3 и 4.

C) Использование функции SQL Server CHOOSE() с функцией MONTH

В следующем примере функция MONTH() используется для возврата сезонов, в которые клиенты покупают продукты. Результат функции MONTH() используется в функции CHOOSE() для возврата соответствующего сезона:

SELECT 
    order_id,
    order_date,
    customer_id,
    CHOOSE(
        MONTH(order_date), 
        'Winter', 
        'Winter', 
        'Spring', 
        'Spring', 
        'Spring', 
        'Summer', 
        'Summer', 
        'Summer', 
        'Autumn', 
        'Autumn', 
        'Autumn', 
        'Winter') month
FROM 
    sales.orders
ORDER BY 
    customer_id;

На следующем рисунке показан частичный набор результатов:

Пример функции SQL Server CHOOSE

В этом руководстве вы узнали, как использовать функцию SQL Server CHOOSE() для возврата элемента по его индексу в списке значений.

Мирослав С.

Автор статей, ИБ-специалист