| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2400 人关注过本帖
标题:请教dbf表排序
只看楼主 加入收藏
hyf8285
Rank: 1
等 级:新手上路
帖 子:112
专家分:0
注 册:2013-1-21
结帖率:93.33%
收藏
已结贴  问题点数:50 回复次数:24 
请教dbf表排序
请教大佬:现有一个表结构如下,想实现这样的效果,如果把c移到最上,则c的序号变为1,a变为2,b变为3,d还是4,e还是5,请问如何实现?谢谢!
字段     序号      新序号
 a         1          2
 b         2          3
 c         3          1
 d         4          4
 e         5          5
搜索更多相关主题的帖子: 效果 字段 序号 排序 dbf 
2022-07-12 11:27
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
无规律,无法批量处理
如果非要做,只能交换位置
2022-07-12 11:50
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9848
专家分:27241
注 册:2012-2-5
收藏
得分:0 
按RECNO()重新排序试试

坚守VFP最后的阵地
2022-07-12 12:14
hyf8285
Rank: 1
等 级:新手上路
帖 子:112
专家分:0
注 册:2013-1-21
收藏
得分:0 
回复 2楼 mywisdom88
是的,就是要交换位置,想知道如何交换?就是交换后要重新排,记录前面的要变,记录后面的不变
2022-07-12 12:16
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:火星
等 级:版主
威 望:37
帖 子:709
专家分:2848
注 册:2018-3-13
收藏
得分:0 
select 字段, 新序号 as 序号 from 原表 order by 2 into dbf 新表

这家伙很懒,啥也没留下
2022-07-12 12:21
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2232
专家分:3913
注 册:2007-4-27
收藏
得分:0 
以下是引用hyf8285在2022-7-12 11:27:37的发言:

请教大佬:现有一个表结构如下,想实现这样的效果,如果把c移到最上,则c的序号变为1,a变为2,b变为3,d还是4,e还是5,请问如何实现?谢谢!
字段     序号      新序号
 a         1          2
 b         2          3
 c         3          1
 d         4          4
 e         5          5

go 1
x=字段
go 3
y=字段
repl 字段 with x
go 1
repl 字段 with y

只求每天有一丁点儿的进步就可以了
2022-07-12 12:24
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9848
专家分:27241
注 册:2012-2-5
收藏
得分:30 
CREATE CURSOR tt (字段 c(1), 序号 n(2))
INSERT INTO tt VALUES ("a", 1)
INSERT INTO tt VALUES ("b", 2)
INSERT INTO tt VALUES ("c", 3)
INSERT INTO tt VALUES ("d", 4)
INSERT INTO tt VALUES ("e", 5)
SELECT * FROM tt WHERE 字段 = "c" INTO CURSOR tt1 READWRITE
INSERT INTO tt1 SELECT * FROM tt WHERE 字段 != "c"
REPLACE 序号 WITH RECNO() ALL
BROWSE

坚守VFP最后的阵地
2022-07-12 12:32
hyf8285
Rank: 1
等 级:新手上路
帖 子:112
专家分:0
注 册:2013-1-21
收藏
得分:0 
感谢各位大佬,这只是其中的一种情况,我想任意实现移动记录,比如,我想把d移到第一个,或者把b移到第一个,移动的记录是不固定的
2022-07-12 12:33
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9848
专家分:27241
注 册:2012-2-5
收藏
得分:0 
CREATE CURSOR tt (字段 c(1), 序号 n(2))
INSERT INTO tt VALUES ("a", 1)
INSERT INTO tt VALUES ("b", 2)
INSERT INTO tt VALUES ("c", 3)
INSERT INTO tt VALUES ("d", 4)
INSERT INTO tt VALUES ("e", 5)
lc = "c"
SELECT * FROM tt WHERE 字段 = lc INTO CURSOR tt1 READWRITE
INSERT INTO tt1 SELECT * FROM tt WHERE 字段 != lc
REPLACE 序号 WITH RECNO() ALL
BROWSE

坚守VFP最后的阵地
2022-07-12 12:42
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
以下是引用hyf8285在2022-7-12 12:33:10的发言:

感谢各位大佬,这只是其中的一种情况,我想任意实现移动记录,比如,我想把d移到第一个,或者把b移到第一个,移动的记录是不固定的

是不是要这样的效果,
原来
图片附件: 游客没有浏览图片的权限,请 登录注册

变化
图片附件: 游客没有浏览图片的权限,请 登录注册
2022-07-12 13:07
快速回复:请教dbf表排序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031587 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved