我有两列,一列为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
答案 0 :(得分:1)
您可以使用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;
答案 1 :(得分:0)
我可能会去一个派生表和join
:
select t.color + ' ' + v.what
from t join
(values (13, 'CAR'), (26, 'HOUSE'), (35, 'HAT')
) v(id, what)
on t.id = v.id;