Возможно ли сопоставить int со строкой в ​​SQL Server? - PullRequest
0 голосов
/ 16 мая 2019

У меня есть два столбца, один типа INT и один NVARCHAR.Я хочу отобразить INT на строку в соответствии с ее значением и указать оба значения.

Например:

ID    color
-----------------
13    BLUE
13    WHITE
26    YELLOW
35    RED

Ожидаемый результат:

BLUE CAR
WHITE CAR
YELLOW HOUSE
RED HAT

Использованиеотображение:

13 = CAR
26 = HOUSE
35 = HAT

Возможно ли это?Я использую Microsoft SQL Server 2008

Ответы [ 2 ]

1 голос
/ 16 мая 2019

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

select color + ' ' + 
       (case id when 13 then 'car' when 26 then 'house' when 35 then 'hat' end)
from table t;

Если у вас есть таблица сопоставления, тогда выполните JOIN:

select t.color + ' ' + m.mappingname
from table t inner join
     mapping m
     on m.id = t.id;
0 голосов
/ 16 мая 2019

Я мог бы пойти на производную таблицу и join:

select t.color + ' ' + v.what
from t join
     (values (13, 'CAR'), (26, 'HOUSE'), (35, 'HAT')
     ) v(id, what)
     on t.id = v.id;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...