gpt4 book ai didi

c# - 按 ASC 顺序从 SQLServer 获取数据

转载 作者:行者123 更新时间:2023-11-30 15:18:41 24 4
gpt4 key购买 nike

我有一个包含列名称 id 和值的表。当数据保存在 sql server 数据库中时,它会以随机顺序自行排序,即 id 值 1,2,3,4,5,6,7,14,15,16,17,8,9,10 等。

我需要检索 4 组数据,每组有 11 个数据,按 asc id 顺序,

也就是说,

第 1 组:1-11第 2 组:12-22第 3 组:23-33第 4 组:33-44

我试过查询

第 1 组:从 tblCode 按 id ASC 顺序选择 top(11) *

第 2 组:SELECT top(22)* FROM tblCode except select top(11) * from tblCode order by id ASC

第 3 组:SELECT top(33)* FROM tblCode except select top(22) * from tblQRCode order by id ASC

第 4 组:SELECT top(44)* FROM tblCode except select top(33) * from tblCode order by id ASC

我的问题是,由于数据在保存到数据库时是随机排序的,所以它们是随机检索的。

下面是我的数据如何保存在数据库中的截图。

Screenshot帮我选择上述组的数据。

最佳答案

使用OFFSET and FETCH而不是 TOP

例如第二组是:

select *
from tblCode
order by id ASC
offset 11 rows
fetch next 11 rows only

完整的重现脚本:

declare @t table (ID int not null, Value varchar(93) not null);
;With Numbers as (
select ROW_NUMBER() OVER (ORDER BY so1.object_id) as n
from sys.objects so1,sys.objects so2,sys.objects so3
)
insert into @t (ID,Value)
select n,'PEC-' + CONVERT(varchar(93),n)
from Numbers
where n between 1 and 1000

select *
from @t
order by id ASC
offset 11 rows
fetch next 11 rows only

结果:

ID          Value
----------- ---------
12 PEC-12
13 PEC-13
14 PEC-14
15 PEC-15
16 PEC-16
17 PEC-17
18 PEC-18
19 PEC-19
20 PEC-20
21 PEC-21
22 PEC-22

关于c# - 按 ASC 顺序从 SQLServer 获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43361747/

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