Comment puis-je effectuer un mappage de string simple dans le cadre d'une sélection t-sql?

En T-SQL, je peux faire de l'arithmétique dans le cadre d'un select. Par exemple, supposons que j'ai une table Math avec une colonne nommée Decimal. Je peux faire la requête suivante.

SELECT 100*Decimal FROM Math 

Je me request s'il est aussi possible de faire de la logique dans le SELECT où je crée un mapping tel que {A => B, F => Z} de sorte que chaque fois que la colonne est A, elle returnne B et chaque fois , ça renvoie Z.

Je m'excuse si c'est une question newb, parce que je ne suis pas très expérimenté en SQL.

Je pense que vous voulez utiliser l'expression CASE :

 SELECT CASE column1 when 'A' THEN 'B' when 'F' THEN 'Z' END FROM Tbl 

Notez également qu'il existe deux syntaxes différentes, choisissez celle qui vous convient le mieux.

Vous pouvez créer une variable de table qui a deux colonnes, une pour ce qui est en train d'être mappé et une autre pour ce à quoi elle est mappée. Ensuite, joignez simplement à cette variable de table sur la colonne que vous souhaitez remapper.

Les instructions CASE fonctionnent très bien pour un petit nombre de comparaisons, mais si vous souhaitez effectuer plusieurs remappages, la variable de table peut être la meilleure option.

quelque chose comme ça…

 DECLARE @Mappings TABLE ( MapFrom VARCHAR(50), MapTo VARCHAR(50) ) insert into @Mappings values ('A', 'B'), ('F', 'Z'), ('other', 'mappings'); select m.MapTo from yourTable t inner join @Mappings m on m.MapFrom = t.columnName 
 SELECT CASE WHEN YourColumn = 'A' THEN 'B' WHEN YourColumn = 'F' THEN 'Z' ELSE YourColumn END AS MappedColumn FROM YourTable