肖恩提到的,这样做会最彻底的方法将“查找”放在一个表中。
例如:
--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列中插入查找值(“),B列中的第一查找值”1“,C列中的中间部分”,“,第二列中的第二查找值”Supervisor“ ,以及关闭文本“');”在E列中,然后在F列中创建一个“= CONCATENATE(A1,B1,C1,D1,E1)”公式;然后将公式拖到查找列表的末尾,最后将您的F列复制到SQL Query窗口并执行它以将这些值实际插入到表中。
你也可以使用这个Excel串连技术“手工”打造你的case语句,它应该是这样的:
Select Id,
Case
When PosId = 2 then 'Manager'
when PosId = 3 then 'Developer'
Else 'No Value'
End
From myTable
你有一个具有PosId和意味着什么的说明表。通常情况下,这是如何完成的。 –
不,PosId与其他表格没有关系。 –
您发布的代码不会抛出语法错误,除非它具有复制/粘贴中的某些奇怪的字符。但是,由于您在同一个case语句中使用数字值和字符串,所以会引发转换错误 – dfundako