J'ai une colonne dire TypeOfManager
où il y aura des inputs comme
TypeOfManager ----------------- Sales Relation S R
Dans ce cas, je veux traiter 'R' comme Relation et 'S' comme Ventes.
Quelle sera la syntaxe de la requête dans SQL Server.
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, colonne b ci-dessus sont à replace par les vraies colonnes dont vous avez besoin de votre table, évidemment.
Mettre à jour
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
Y at-il une raison pour laquelle "S" et "R" ne peuvent pas être remplacés par "Sales" et "Relation"? Sinon, lancez simplement une requête de mise à jour avant d'exécuter la requête principale. Si c'est le cas, en supposant que les lettres sont uniques, faites simplement une requête "S%" ou "R%". Ou vous pouvez écrire une requête omni qui utilise Or / Et.
Vous pouvez créer une table principale pour conserver les types de gestionnaire
Create TypeofManager ( ManagerTypeId char(1) not null, ManagerTypeDescription nvarchar(50) )
Vous pouvez ensuite vous référer à cette table à partir d'autres données de table en utilisant une colonne de key étrangère comme ManagerTypeId
Vous pouvez uniquement stocker ManagerTypeId
et joindre deux tables à l'aide des colonnes ManagerTypeId