SQL Сервер - Предложите запрос для этого сценария - PullRequest
0 голосов
/ 02 августа 2020

В SQL сервере: «У меня есть поле (D1) как 101, 102, 103 в таблице базы данных: mastersupport.

У меня есть этот запрос

select right(D1, R) 
from mastersupport.

Будет возвращать такие результаты, как 1, 2, 3

Но мое требование состоит в том, что я хочу отображать результат только как A, B, C вместо 1,2,3 ". Пожалуйста, предложите запрос.

Я пробовал с приведенным ниже, но получил синтаксическую ошибку.

SELECT DISTINCT
    REPLACE(REPLACE((RIGHT(D1, 1)), '1' , ‘A’), '2', ‘B’, ) AS ExtractString 
FROM
    master_support;

Любой другой запрос для получения результата как A, B, C ..... .

1 Ответ

2 голосов
/ 02 августа 2020

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

select case right(d1, 1)
    when '1' then 'A'
    when '2' then 'B'
    when '3' then 'C'
    ...
end as extract_string
from master_support

Обратите внимание, что если d1 имеет тип данных numeri c, использование арифметики кажется более естественным подходом:

select case d1 % 10
    when 1 then 'A'
    when 2 then 'B'
    when 3 then 'C'
    ...
end extract_string
from master_support
...