gpt4 book ai didi

sql - 如何在单个语句中执行选择?

转载 作者:行者123 更新时间:2023-12-02 08:58:05 25 4
gpt4 key购买 nike

我有一个包含以下数据的 Sql Server 2005 表:

alt text

idHearing 是主键(身份),idCase 是可能重复的外键。 StartDate 和 StartTime 指定事件的日期和时间 - 两个字段都是 DateTime 类型(无论出于何种原因,这些都是单独的字段)。所有 StartDate 数据的时间均为 12:00:00。所有 StartTime 数据的日期均为 1/1/1900。 IsScheduled 和 IsOnCalendar 是位字段。

我的挑战是为每个 idCase 选择最新的听证会(按照日期/时间)。如果 StartDate/StartTime 相同(如第 1 行和第 2 行中所示),则应优先考虑启用 IsScheduled 和/或 IsCalendar 的行。如果这些列也相同,那么返回哪一行并不重要。

为了让事情变得更复杂,我必须在单个 SELECT 语句中完成所有操作(因为它必须在 View 中),并且必须返回您在下面看到的所有列。

我尝试了多种方法,但我的 SQL-FU 并不强。有什么想法吗?

最佳答案

用途:

CREATE VIEW vw_summary AS
WITH example AS (
SELECT t.idcase,
t.startdate,
t.startime,
t.isscheduled,
t.isoncalendar,
ROW_NUMBER() OVER (PARTITION BY t.idcase ORDER BY t.startdate DESC,
t.starttime DESC,
t.isscheduled DESC,
t.isoncalendar DESC) AS rank
FROM TABLE t)
SELECT e.*
FROM example e
WHERE e.rank = 1

检查并查看 - 可能会调整 ROW_NUMBER 上的 ORDER BY...

关于sql - 如何在单个语句中执行选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3380561/

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