共计 652 个字符,预计需要花费 2 分钟才能阅读完成。
USE [lysk2]
GO
/****** Object: StoredProcedure [dbo].[P_EvacuateNodes] Script Date: 2023/11/30 8:25:41 ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[P_EvacuateNodes] @node int = 999 as begin truncate table CalStartTab;
EXEC P_CalculateStartProc @node;
truncate table CalEndTab;
EXEC P_CalculateEndProc @node;
truncate table EvacEvenNodesTab;
insert into
EvacEvenNodesTab
SELECT
tp.*
FROM
(
SELECT
TOP 100 PERCENT ROW_NUMBER() OVER (
partition BY ddid
ORDER BY
wtime
) AS rowNum,
sid,
tid,
ygid,
wtime,
ddid
FROM
WFRecord
WHERE
id IN (
SELECT
id
FROM
WFRecord wf
INNER JOIN CalStartTab s ON wf.ddid = s.ddid
INNER JOIN CalEndTab e ON wf.ddid = e.ddid
WHERE
(
sid = @node
OR tid = @node
)
AND wtime >= s.minTime
AND wtime <= e.maxTime
GROUP BY
wf.ddid,
wf.id
)
ORDER BY
wtime
) tp
WHERE
tp.rowNum % 2 = 0 truncate table EvacOddNodesTab;
insert into
EvacOddNodesTab
SELECT
tp.*
FROM
(
SELECT
TOP 100 PERCENT ROW_NUMBER() OVER (
partition BY ddid
ORDER BY
wtime
) AS rowNum,
sid,
tid,
ygid,
wtime,
ddid
FROM
WFRecord
WHERE
id IN (
SELECT
id
FROM
WFRecord wf
INNER JOIN CalStartTab s ON wf.ddid = s.ddid
INNER JOIN CalEndTab e ON wf.ddid = e.ddid
WHERE
(
sid = @node
OR tid = @node
)
AND wtime >= s.minTime
AND wtime <= e.maxTime
GROUP BY
wf.ddid,
wf.id
)
ORDER BY
wtime
) tp
WHERE
tp.rowNum % 2 = 1
end
突然翻到之前自己写的存储过程 现在看看都是头皮发麻 公司框架用的还是 .Net Framework 4.5
直接用 CYQ.Data 和数据库交互 sql 中 order by 还失效 必须先查询加载到内存后再排序
之前一直用的是 EF 或者 EF Core 也用过 SqlSugar 这样的第三方框架
正文完