Добавляем новый столбец в таблицу и хотим заполнить новыми данными с помощью оператора case - PullRequest
0 голосов
/ 17 ноября 2018

У меня есть базовая таблица с клиентом, регионом, продавцом, товаром.Пункты продажи сокращены, например, TENN - это вход для Tennis Shoes.В новом столбце назовите его SALES2, я хочу исправить с другими именами.Это то, что у меня пока есть, но оно не работает

ALTER TABLE SALES
DROP COLUMN SALES2 varchar(25) AFTER Sales Item;
UPDATE SALES
SET SALES2= CASE
(
WHEN Sales Item = 'TENN' THEN 'Tennis Shoes'
WHEN Sales Item = 'PJs' then 'Pajamas'
ELSE = Other
)
END

Вот что я ищу в конечном результате image

Ответы [ 2 ]

0 голосов
/ 17 ноября 2018

Используйте вычисляемый столбец!Тогда обновление не требуется.В столбце просто указывается значение как вычисленное:

ALTER TABLE SALES
    ADD SALES2 AS (CASE WHEN SalesItem = 'TENN' THEN 'Tennis Shoes'
                        WHEN SalesItem = 'PJs'  THEN 'Pajamas'
                        ELSE 'Other'
                   END)
0 голосов
/ 17 ноября 2018

Здесь есть пара проблем. Во-первых, вы хотите add столбец, а не drop его (что означает его удаление):

ALTER TABLE SALES
ADD COLUMN SALES2 varchar(25) AFTER Sales Item;

Во-вторых, ваш синтаксис case неверен - вы должны удалить = после else, использовать одинарные кавычки для обозначения этой строки и удалить скобки:

UPDATE SALES
SET SALES2= CASE
WHEN [Sales Item] = 'TENN' THEN 'Tennis Shoes'
WHEN [Sales Item] = 'PJs'  THEN 'Pajamas'
ELSE 'Other'
END
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...