gpt4 book ai didi

c# - 如何在 LINQ 中按分区使用 over?

转载 作者:太空狗 更新时间:2023-10-29 20:37:27 25 4
gpt4 key购买 nike

我对如何将此查询更改为 LINQ 感到困惑

  select 
CONTENT
from
(
select
CONTENT,
CAM_ID,
max(CAM_ID) over (partition by DOCUMENT_ID) MAX_ID
from
T_CAM_REVISION
where
DOCUMENT_ID = '101'
)
where
CAM_ID = MAX_ID

所以我可以获得内容的单个值。

最佳答案

在 LINQ 中无法执行 max(...) over (...)。这是一个等效的查询:

var maxCamID =
context.T_CAM_REVISION
.Where(rev => rev.DOCUMENT_ID == "101")
.Max(rev => rev.CAM_ID);

var query =
from rev in context.T_CAM_REVISION
where rev.CAM_ID == maxCamID
where rev.DOCUMENT_ID == "101"
select rev.CONTENT;

如果您只想要一个结果:

var result =
context.T_CAM_REVISION
.First(rev => rev.CAM_ID == maxCamID
&& rev.DOCUMENT_ID == "101")
.CONTENT;

关于c# - 如何在 LINQ 中按分区使用 over?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7606684/

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