2010-11-11 102 views
0

我有我的角色表(這對我來說計劃很差),它由4個字段組成:role_name,type1,type2,type3。如何在Access中執行if語句?

每個typeX或者有Y表示是或者N表示否。

的樣本數據:

Hero, Y, N, N 
Human, N, Y, N 
Dog, Y, N, N 

我想我的輸出是:

Hero Type1 
Human Type2 
Dog Type1 

幫助?請!

回答

1

您需要使用IIF聲明爲此,並在你的情況下,你必須嵌套它們。 喜歡的東西:

select role_name, 
    iif(type1 = "Y", "Type1", iif(type2 = "Y", "Type2", iif(type3 = "Y", "Type3", "unknown"))) 
from roles 
+0

嗯,訪問正在拋#Er在每行ror – Mik0r 2010-11-11 21:15:08

+0

沒關係,明白了。數據類型爲「是/否」,其值爲-1/0。哎呀。謝謝! – Mik0r 2010-11-11 21:18:39

0

你可以使用嵌套IIF statements來達致這

​​

,或者如果你想知道,沒有類型分配

SELECT role_name, iif(type1='Y', "Type1", 
        iif(type2='Y', "Type2", 
        iif(type3='Y', "Type3", "N/A"))) 
FROM roles 

但是這並假定你將永遠不會有多種類型的人...

+0

如果type1,type2,type3的數據類型爲Yes/No,這有什麼關係嗎? – Mik0r 2010-11-11 21:12:43

+0

在這種情況下,您可以將其評估爲true,IE iif(type1,「Type1」等。不需要進行任何相等性檢查(除非未指定默認值,則您有空值) – Mohgeroth 2010-11-11 21:25:40