gpt4 book ai didi

sql - SQL 语句中的 If 逻辑

转载 作者:行者123 更新时间:2023-12-01 10:13:09 24 4
gpt4 key购买 nike

我想做的应该很简单,但不知何故我无法找到问题的正确答案。我过去问过类似的问题,但之前给我的答案不再符合要求。所以这就是发生的事情 - 我需要以不同于通常的方式有条件地从我的数据库中的表中选择值,如下所示:

表格:

  • Id int(不为空)
  • ParentId 整数(不为空)
  • EventOn DateTime(不为空)
  • 用户整数(空)

通过以下选择:

SELECT RST.* FROM RangeSheetTime RST
WHERE RST.[User] is not null

(在上面的例子中,我获取了用户不为空的所有行)

Select RST.* FROM RangeSheetTime RST
WHERE RST.[User] is null

(在上面的例子中,我取了用户为空的所有行)

那我要做什么?我想构建一个选择语句,当给定一个条件时,例如 EventOn < GETDATE(),将检索 USER 不为空的所有行。如果没有任何 USER 不为空的行,那么它应该检索它为空的行(如果有的话)。

我怎样才能让它发挥作用?

注意:这里不能用if,不然这样会更简单。

编辑:

我会尽力解释它。假设我有 3 行相同的 ParentId,31。其中 2 行的名为 StartOrEnd 的列设置为 1。它们之间只是有区别,对于第一个,USER 列为空;对于第二个,USER 列的值为 90。第 3 行的列 StartOrEnd 设置为 0。现在,无论 startorend 的值如何,我都想显示结果。但有一个陷阱。对于每个 startorend,如果有超过 1 行并且其中一个将 USER 设置为 null 而其他不为 null,然后将仅显示该 startorend 的非空行。但如果此条件没有非空行,则将显示空值。我希望我现在清楚了。

最佳答案

您应该查看 CASE...WHEN 结构,它等同于 SQL 中的 IF...THEN:

https://web.archive.org/web/1/http://articles.techrepublic%2ecom%2ecom/5100-10878_11-5078041.html

关于sql - SQL 语句中的 If 逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3652492/

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