gpt4 book ai didi

c# - 表合并到自身

转载 作者:行者123 更新时间:2023-11-30 17:15:03 25 4
gpt4 key购买 nike

我创建了一个表“Test”

create table test
(
id int identity(1,1) not null,
correlation int,
data varchar(max)
)

下面是表格的数据

insert into test(correlation,data) values(1,'x0')
insert into test(correlation,data) values(1,'x1')
insert into test(correlation,data) values(2,'z1')
insert into test(correlation,data) values(2,'z2')
insert into test(correlation,data) values(3,'a')
insert into test(correlation,data) values(4,'b')
insert into test(correlation,data) values(5,'c')

我需要在网页上显示数据并将表连接到自身关联并做分页

例如,如果我有两个具有相同相关性的记录 (1),我需要将两行显示为一行,数据为当前数据和先前数据。在下面的示例中,当前数据将为 x1,之前的数据将为 x0。

之前

 Correlation  Data
1 x0
1 x1

之后

Correlation     Previous Data   Current Data
1 xo x1

如果关联只有一行,则结果中的先前关联将为空。

目前我在 Linq 中进行了分页并且它正在工作但我担心将来它会花费性能问题。

sameone 可以帮助我使用 SQL 吗。

这个问题还有其他好的解决方案吗

最佳答案

;with C as
(
select correlation,
data,
row_number() over(partition by correlation order by id desc) as rn
from @test
where SomeColumn > 10 -- Where clause goes here (if possible)
)
select C1.correlation,
C2.data as [Previous Data],
C1.data as [Current Data]
from C as C1
left outer join C as C2
on C1.correlation = C2.correlation and
C2.rn = 2
where C1.rn = 1

结果:

correlation Previous Data Current Data
----------- ------------- ------------
1 x0 x1
2 z1 z2
3 NULL a
4 NULL b
5 NULL c

关于c# - 表合并到自身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8257507/

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