В этом руководстве вы узнаете, как использовать функцию 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;
На следующем рисунке показан частичный результат:
В этом примере статус заказа — «Ожидание», «Обработка», «Отклонено» и «Выполнено», если значение 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() для возврата элемента по его индексу в списке значений.