Удалить дублирование данных в запросе SQL Server - PullRequest
1 голос
/ 15 ноября 2011

У меня есть столбец с именем TypeOfManager, где будут записи типа

TypeOfManager 
-----------------
Sales
Relation
S
R

В этом случае я хочу рассматривать 'R' как отношение, а 'S' как продажи.

Какой будет синтаксис запроса в SQL Server.

Ответы [ 3 ]

2 голосов
/ 15 ноября 2011
Select Columna, 
Columnb,
Case when TypeofManager in ('Sales','S') then 'sales'
when TypeofManager in ('Relation','R') then 'Relation'
Else TypeofManager end as TypeOfManager
From yourtable

Columna, columnb выше должны быть заменены любыми реальными столбцами из вашей таблицы, очевидно.

Обновление

Select count(*), typeofmanager, Columna , columnb from (Select Columna, 
Columnb,
Case when TypeofManager in ('Sales','S') then 'sales'
when TypeofManager in ('Relation','R') then 'Relation'
Else TypeofManager end as TypeOfManager
From yourtable ) x
Group by TypeofManager, Columna, columnb
0 голосов
/ 15 ноября 2011

Вы можете создать основную таблицу для хранения типов менеджера

Create TypeofManager (
 ManagerTypeId char(1) not null,
 ManagerTypeDescription nvarchar(50)
)

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

. Вы можететолько хранить ManagerTypeId и объединить две таблицы, используя ManagerTypeId столбцы

0 голосов
/ 15 ноября 2011

Есть ли причина, по которой «S» и «R» нельзя заменить на «Продажи» и «Отношение»? Если нет, просто запустите запрос на обновление, прежде чем запускать основной запрос. Если это так, то при условии, что буквы уникальны, просто сделайте запрос типа «S%» или «R%». Или вы можете написать омни-запрос, который использует Or / And.

...