| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 1697 人关注过本帖
标题:VFP排序多个字段排序怎么弄?
只看楼主 加入收藏
calin
Rank: 2
等 级:论坛游民
帖 子:108
专家分:50
注 册:2010-4-11
结帖率:90.32%
收藏
已结贴  问题点数:20 回复次数:5 
VFP排序多个字段排序怎么弄?
比如我表里有A\B\C\D四个字段,我现在想用A和B两个字段排序,
即若A相同,按B字段排,优先排A字段。

 
搜索更多相关主题的帖子: VFP 排序 多个 字段 相同 
2017-07-28 14:59
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:340
帖 子:8671
专家分:38044
注 册:2014-5-20
收藏
得分:5 
"A"+"B"
2017-07-28 15:38
shankeda
Rank: 1
等 级:新手上路
帖 子:30
专家分:5
注 册:2017-7-24
收藏
得分:5 
select * group by A,B from 原表 into table 新表
2017-07-29 15:33
wangzhiyi
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:366
专家分:684
注 册:2014-4-9
收藏
得分:5 
sort on a,b to 新表
2017-07-30 20:16
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
收藏
得分:5 
以下是引用calin在2017-7-28 14:59:19的发言:

比如我表里有A\B\C\D四个字段,我现在想用A和B两个字段排序,
即若A相同,按B字段排,优先排A字段。

 

这有几个方法:

1、想临时看一看的
SELECT * FROM 表文件名 ORDER BY A,B
当然啰,如果加上INTO TABLE子句,也可以按排好的顺序生成新表。

2、直接生成新表
SORT TO 新表文件名 ON A,B

3、不生成新表,只生成索引,以便在需要的时候随时调用
INDEX ON A+B TAG 索引标识名
注意:这里的“A+B”有讲究,不是简单地把字段名写在加号的两端即可。因为可以用作排序的字段类型有多种,最常见的是字符型(C、V)、数值型(N、B、I、Y)、日期型(D),以及日期时间型(T)。这又分三种情况:

(1)字符型+字符型。这种情况最好解,直接写成“A+B”这种形式就可以了;

(2)字符型+数值型、字符型+日期型、字符型+日期时间型、数值型+日期型、数值型+日期时间型、日期型+日期型、日期型+日期时间型、日期时间型+日期时间型。当出现这八种组合相遇时,统一转换成字符型,再写入加号两端即可。比如:字符型+数值型,可写成:A+STR(B);数值型+日期型,可写成:STR(A)+DTOS(B);日期时间型+日期时间型,可写成:TTOC(A,1)+TTOC(B,1)。

(3)数值型+数值型。这种情况比较复杂。从语法上来说,直接进行数学意义上的加法后索引也能顺利执行,不过是否符合要求就很难说了。当碰到这种类型的索引时,一定要搞清楚要求,这分两种情况:(1)将两者都转换成字符串后进行连接,作为索引表达式;(2)将两者直接进行数学意义上的加法后作为索引表达式。
比如,有一个月薪表需要索引,要求是:先按工资降序排列,工资相同的按奖金降序排列。有三条记录,工资/奖金分别是:600/1000、500/1200、600/900。乍一看,好象用上述两种方法产生的结果是一样,其实不然。只有当工资相同时,两种方法的结果才一样。但关键在于不是所有人的工资都一样,而且工资低的奖金可能还更高(此例就是)。如果简单进行数学相加就产生了一个问题:500/1200的那条记录原本应该排在另两后面,结果却因为数学相加后的值最大,反而排到那两条记录前面去了。故,此例应该用表达式“STR(工资,3)+STR(奖金,4)”配合DESCENDING子句进行索引。若要求改为按月收入降序排列,那么直接用表达式“工资+奖金”配合DESCENDING子句进行索引就好了。这时,500/1200那条记录就应该排在首位。
2017-07-31 13:43
fanjinyu9108
Rank: 2
等 级:论坛游民
帖 子:552
专家分:13
注 册:2014-1-16
收藏
得分:0 
学习了,留个记号
2021-11-06 21:26
快速回复:VFP排序多个字段排序怎么弄?
数据加载中...
 
   



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

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