加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 执行查询后数据集的自定义排序顺序?

发布时间:2020-12-15 04:34:09 所属栏目:大数据 来源:网络整理
导读:我希望数据库查询的结果集具有特定的顺序.我想要订购的信息不包含在数据库中,而是在代码中动态生成(因此我不能使用ORDER BY). 有没有办法在执行数据库查询后对数据集进行排序? (我不需要索引访问,但只想迭代所有记录.) 解决方法 有可能与Jens的答案(1)有相
我希望数据库查询的结果集具有特定的顺序.我想要订购的信息不包含在数据库中,而是在代码中动态生成(因此我不能使用ORDER BY).

有没有办法在执行数据库查询后对数据集进行排序? (我不需要索引访问,但只想迭代所有记录.)

解决方法

有可能与Jens的答案(1)有相似之处,但结果却略有不同.

鉴于现有表格:

create table somedata (id integer,name char(20));
insert into somedata values ( 1,'Tim' );
insert into somedata values ( 2,'Bob' );
insert into somedata values ( 3,'Joe' );

如果您知道所需的短订单(通过处理表或其中的某些查询结果),请创建一个临时表,该表具有一些键值以匹配原始表中的所需行,然后是排序顺序数据:

create table #sortorder( id integer,sortvalue integer );

在临时表中设置sortvalue字段以包含所需的顺序(它可以是任何可排序的数据类型 – 不必是整数):

insert into #sortorder values ( 1,15 );
insert into #sortorder values ( 2,12 );
insert into #sortorder values ( 3,5 );

然后使用针对提供排序顺序的表的连接生成结果:

select sd.* from somedata sd,#sortorder so 
         where sd.id = so.id
         order by so.sortvalue;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读