Категоризация данных в запросе выбора

#sql #oracle

#sql #Oracle

Вопрос:

Итак, у меня есть таблица с 600 тысячами строк. Мы извлекаем данные из oracle и переносим их в MSSQL (поскольку в oracle у нас есть только права на чтение).

В настоящее время это простой запрос

 select Name, address,country from Table a
 

Я ищу способ добавить столбец в этот оператор select, назвав его регионом, чтобы классифицировать страну.

Если страна в Индии, Китае и Шри-Ланке, то APAC. Если страна в США, BRA или CAN, то АМЕР.

Мои знания в SQL находятся на начальном уровне, поэтому я предполагаю, что это невозможно, и мне может потребоваться использовать поддержку python для выполнения этого, но я подумал о том, чтобы спросить, прежде чем принимать решение.

Ответ №1:

Вы бы использовали case выражение:

 select a.*,
       (case when country in ('India', 'China', 'Sri Lanka')
             then 'APAC'
             when country in ('USA', 'BRA', 'CAN')
             then 'AMER'
        end) as region
from a;
 

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