肖恩提到的,這樣做會最徹底的方法將「查找」放在一個表中。
例如:
--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