作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在处理一个查询,该查询会提取访问某个位置的人员列表。该位置的政策的一部分是,如果某人在3年内没有来过,那么他们将不再是活跃成员,而必须重新建立其成员身份。通常,我只是将查询结果粘贴到Excel中,并添加带有公式的列,该公式可以查看上次访问日期并标记此人是否活跃,但是我想我可以尝试将计算结果直接添加到查询中并使用SQL服务器为我完成工作。问题是,我不确定语法。
我希望最终结果看起来像这样(通常,我的Excel公式距创建报告的日期只有3年了,因此,对于本示例而言,我们距3年12/17/2019):
PersonID LastVisit Active
-------------------------------------
1001 2019-12-01 YES
1002 2014-07-24
1003 2016-12-31 YES
1004 2018-10-12 YES
1005 2016-02-04
1006 2017-09-20 YES
CASE
语句。
SELECT
PersonID,
LastVisit,
CASE [--not sure what, if anything, goes here--]
WHEN LastVisit > DATEADD(yy,-3,GETDATE()) THEN 'YES'
END AS Active
FROM PersonInfo
ORDER BY PersonID
incorrect syntax near '>'
和
incorrect syntax near 'THEN'
。我至少在正确的轨道上吗?我需要做些什么才能使这种逻辑起作用?
最佳答案
此语法应该起作用:
(CASE WHEN LastVisit > DATEADD(year, -3, GETDATE()) THEN 'YES'
END) AS Active
case
表达式。
关于sql - 使用IF/ELSE逻辑在SQL查询中创建新列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59380439/
我是一名优秀的程序员,十分优秀!