您好我有以下查询:
Select Id, PosId from myTable
返回的内容如下:
1009,2或1010,3等。
我想要做的是更改PosId,例如,如果PosId = 2将其更改为“Manager”等,我正在尝试使用CASE or If
解决此问题,但我不太了解使用在T-SQL中,我该如何解决这个问题?
这是我试过的
Select Id,
Case When PosId = 2 then 'Manager' Else 0 End
From myTable
但是我得到了
“案例”
附近的语法不正确
答案 0 :(得分:0)
正如肖恩所提到的,最简洁的方法是将#34;查找"在一张桌子里。
例如:
--Create the table
create table lookup
(
posId int,
description varchar(50)
);
insert into lookup values (1, 'Supervisor');
insert into lookup values (2, 'Manager');
insert into lookup values (3, 'Developer');
insert into lookup values (4, 'Janitor');
insert into lookup values (5, 'Mouse');
insert into lookup values (6, 'Dust');
insert into lookup values (7, 'Carpet');
insert into lookup values (8, 'Tester');
select * from lookup;
然后您可以使用简单的select语句:
Select Id, description from myTable m
left outer join lookup l on m.PosId=l.posId
如果您需要帮助构建查找表的insert语句,我发现使用"插入查找值("在A列中,第一个查找值&#)创建电子表格会很有帮助34; 1"在B列中,中间部分",'"在C列中,第二个查找值"主管"在D列中,以及结束文本"');"在E列中,然后创建" = CONCATENATE(A1,B1,C1,D1,E1)" F栏中的公式;然后将公式拖到查找列表的末尾,最后将F列复制到SQL查询窗口并执行它以实际在表中插入这些值。
你也可以使用这种excel连接技术来构建你的case语句"手动",它们看起来像这样:
Select Id,
Case
When PosId = 2 then 'Manager'
when PosId = 3 then 'Developer'
Else 'No Value'
End
From myTable