惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Martin Fowler
Martin Fowler
Engineering at Meta
Engineering at Meta
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
阮一峰的网络日志
阮一峰的网络日志
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
量子位
Jina AI
Jina AI
Microsoft Azure Blog
Microsoft Azure Blog
博客园_首页
L
LangChain Blog
A
About on SuperTechFans
人人都是产品经理
人人都是产品经理
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
美团技术团队
博客园 - 三生石上(FineUI控件)
N
Netflix TechBlog - Medium
D
DataBreaches.Net
P
Proofpoint News Feed
小众软件
小众软件
Vercel News
Vercel News
T
The Blog of Author Tim Ferriss
WordPress大学
WordPress大学
雷峰网
雷峰网
G
Google Developers Blog

博客园 - Shapley

项目心得 进程间通讯方式 C#使用MCP协议调用大模型示例 sql server行专列一例 数据库字段排序方法两则 Sql Server生成ULID例子 审批流进化记 winform+Task+async 献丑贴:Task.Run中foreach优化 Sql Server Begin TRY sample No service for type 'Microsoft.AspNetCore.Mvc.ViewFeatures.Filters.ValidateAntiforgeryTokenAuthorizationFilter' has been registered. 某低代码平台自定义控件技术点 Element-plus的el-date-picker控件动态切换中英文方案 Chrome浏览器无法查看页面跳转前的请求日志及解决办法 element-plus上传视频并生成缩略图(封面)方案 JWT自动刷新草案 Ajax方法POST的两种提交方式 H5项目在微信浏览器运行实录 Sql Server变量声明及使用技巧 修改Dify的Nginx对外访问端口 Task with Console(with SemaphoreSlim) Task实战 asp.net core 9.0发布centos7.9 Barrier CountdownEvent
SQL Server LEAD函数实践
Shapley · 2026-07-10 · via 博客园 - Shapley
CREATE TABLE [dbo].[Tender_Process_RoundInfo]
(
[ID] [int] NOT NULL IDENTITY(1, 1),
[ProjectID] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL,
[RoundNumber] [int] NOT NULL,
[BeginTime] [datetime] NOT NULL,
[EndTime] [datetime] NOT NULL
) ON [PRIMARY]
GO
WITH OrderedRounds AS
    (   SELECT      ProjectID, RoundNumber, BeginTime, EndTime,
                    -- 使用 LEAD 获取下一轮的开始时间
                    LEAD(BeginTime, 1) OVER (PARTITION BY ProjectID ORDER BY RoundNumber) AS next_begintime
            FROM    dbo.Tender_Process_RoundInfo
            WHERE   ProjectID='1'), CalculatedStages AS
    (   SELECT      ProjectID, RoundNumber,
                    -- 当前轮次的持续时间(秒)
                    DATEDIFF(SECOND, BeginTime, EndTime)      AS duration_seconds,
                    -- 当前轮次结束到下一轮开始之间的休息间隔(秒)
                    DATEDIFF(SECOND, EndTime, next_begintime) AS rest_seconds
            FROM    OrderedRounds)
SELECT      stage=CONCAT('', RoundNumber, '轮报价倒计时'), seconds=duration_seconds, sortorder=RoundNumber * 10
    FROM    CalculatedStages
UNION ALL
SELECT      stage=CONCAT('休息间隔 ', RoundNumber, '-', RoundNumber+1), seconds=rest_seconds, sortorder=RoundNumber * 10+1
    FROM    CalculatedStages
    WHERE   rest_seconds IS NOT NULL
    ORDER BY    sortorder

结果:

72bb5a7e-baca-4c0f-9708-9e516efadd22