Как сделать оператор if в Access? - PullRequest
0 голосов
/ 11 ноября 2010

У меня есть таблица ролей (которая была мне плохо спланирована), которая состоит из 4 полей: роль_имя, тип1, тип2, тип3.

У каждого типа X есть Y для да или N для нет.

Пример данных:

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

Я бы хотел, чтобы мой вывод был:

Hero Type1
Human Type2
Dog Type1

Помощь? Пожалуйста!

Ответы [ 2 ]

1 голос
/ 11 ноября 2010

Для этого вам нужно использовать оператор IIF, и в вашем случае вы должны их вложить. Что-то вроде:

select role_name,
    iif(type1 = "Y", "Type1", iif(type2 = "Y", "Type2", iif(type3 = "Y", "Type3", "unknown")))
from roles
0 голосов
/ 11 ноября 2010

Вы можете использовать вложенные операторы IIF для получения этого

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

или если вы хотите знать, что тип не был присвоен

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

Однако этоПредположим, что у вас никогда не будет человека с несколькими типами ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...