首页 > 解决方案 > 将 WHERE 与 IIF 一起使用,还是首选使用 WHERE?

问题描述

我有一个 WHERE 语句,它根据两个条件在字段中生成值。然后,我想根据从新列返回的内容来修改另一列。

在代码中 - 下面选择员工位置(如果存在)并将它们存储在标题为“位置”的字段中

SELECT e.*,
(SELECT l.[Location]
FROM Locations as l
WHERE e.[ID] = l.[ID] AND e.[Team] is NULL
) as L
FROM Employees as e

然后,我想根据这个新的“位置”字段的内容执行 IIF(或者可能是 HAVING() 或 SWITCH()?),以根据员工的位置编辑员工的团队列。

在伪代码中:

IIF(L = 'Germany', Team Field = 'Operations'),
ANOTHER IIF

或者也许另一个功能更适合如上所述。我不明白如何“获取”上述 where 的结果(即 Location 字段)并在条件语句中使用它

标签: sqlms-access

解决方案


您可以使用iif()

SELECT e.*,
       (SELECT IIF(Locations = 'X', [Old Locations Field], 'Y')
        FROM Locations as l
        WHERE e.[ID] = l.[ID] AND e.[Marker] is NULL
       ) as Locations
FROM Employees as e;

如果这可以满足您的需求,那么这是一个很好的方法。


推荐阅读