sql - 将 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 字段)并在条件语句中使用它
解决方案
您可以使用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;
如果这可以满足您的需求,那么这是一个很好的方法。
推荐阅读
- python - 我用另一种方法更新字典的代码有什么问题
- javascript - 5次点击jQuery后如何隐藏按钮?
- r - 二进制矩阵中最常见的行
- session - VisitCount 会话的第一次初始化给出了一个空指针异常,但重新部署使它工作
- javascript - 事件上的 React JS 套接字不会触发
- python - 用于 Discord 机器人的 Python 中的 CommandError
- delphi - 寻找矩阵的位置
- xpath - Scrapy Xpath 在网页中找不到内容
- testing - Jira 为产品创建测试存储库
- ajax - 使用 Ajax 请求将文件上传到 BackBlaze (B2) 时出现校验和错误