gpt4 book ai didi

sql - 使用IF/ELSE逻辑在SQL查询中创建新列?

转载 作者:行者123 更新时间:2023-12-04 16:09:35 25 4
gpt4 key购买 nike

我正在处理一个查询,该查询会提取访问某个位置的人员列表。该位置的政策的一部分是,如果某人在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


顺便说一句,这在SQL中称为 case表达式。

关于sql - 使用IF/ELSE逻辑在SQL查询中创建新列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59380439/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com