问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

vf中的sort on 命令

发布网友 发布时间:2022-04-26 14:37

我来回答

3个回答

热心网友 时间:2022-04-22 05:23

SORT命令

对当前选定表进行排序,并将排过序的记录输出到新表中。

语法

SORT TO TableName ON FieldName1 [/A | /D] [/C]
[, FieldName2 [/A | /D] [/C] ...]
[ASCENDING | DESCENDING]
[Scope] [FOR lExpression1] [WHILE lExpression2]
[FIELDS FieldNameList
| FIELDS LIKE Skeleton
| FIELDS EXCEPT Skeleton]
[NOOPTIMIZE]

参数
TableName

存放排序后记录的新表名,Visual FoxPro 为表取 .DBF 文件扩展名。如果文件不包含扩展名,则自动为它指定 .DBF 扩展名。

ON FieldName1

在当前选定的、要排序的表中指定字段,字段的内容和数据类型决定了记录在新表中的顺序。默认情况是按升序排序,不能对备注或通用字段排序。
要进一步排序新表,可以包含附加字段名 (FieldName2,FieldName3)。第一个字段 FieldName1 是主排序字段,第二个字段 FieldName2
是第二级排序字段 … 依此类推。
下面示例按三个字段对表进行排序。先将 Customer 表打开并排序,同时创建了一个名为 temp 的新表,temp 中的记录按 cust_id 字段排序。

CLOSE DATABASES
OPEN DATABASE (HOME( ) + 'samples\data\testdata')
USE customer && 打开 customer 表
CLEAR
LIST FIELDS company, cust_id NEXT 3
SORT TO temp ON cust_id
USE temp
LIST FIELDS company, cust_id NEXT 3
WAIT WINDOW 'Now sorted on CUST_ID' NOWAIT

[/A | /D] [/C]

对于排序中包含的每个字段,可以指定排序顺序(升序或降序)。/A 为字段指定了升序。/D 指定了降序,/A 或 /D 可以作用于任何类型的字段。
默认情况下,字符型字段的排序顺序区分大小写。如果在字符型字段名后包含 /C,则忽略大小写。可以把 /C 选项同 /A 或 /D 选项组合起来,例如 /AC 或 /DC。
在下面的示例中,创建了一个名为 client 的新表,orders 表在 order_date 字段上按升序排序,在 freight 字段上按降序排序。

USE orders
SORT TO clients ON order_date/A,freight/D

ASCENDING

将所有不带 /D 的字段指定为升序排列。

DESCENDING

将所有不带 /A 的字段指定为降序排列。
如果省略 ASCENDING 或 DESCENDING 参数,则排序顺序默认为升序。

Scope

指定需要排序的记录范围。范围子句包括:ALL、NEXT nRecords、RECORD nRecordNumber 和 REST。有关范围子句的详细内容,请参阅 Scope 子句主题,或《开发指南》的第二章“语言概述”。
SORT 命令的默认范围是 ALL,即所有记录。

FOR lExpression1

在当前表中,指定排序中只包含逻辑条件 lExpression1 为“真”(.T.) 的记录。FOR 子句可以有条件地排序记录,筛掉不满足条件的记录。
如果 lExpression1 是可优化表达式,Rushmore 会优化这个 SORT ... FOR 命令。为达到最优性能,应在 FOR 字句中使用可优化表达式。有关 Rushmore 可优化表达式的内容,请参阅《开发指南》第十七章“优化应用程序”。

WHILE lExpression2

指定一个条件,在当前表中,只要逻辑表达式 lExpression2 的计算值为“真”,则依据此条件,排序中包含这个记录。

FIELDS FieldNameList

指定用 SORT 命令创建的新表中要包含的原表中的字段。如果省略 FIELDS 字句,新表中将包括原表中所有字段。

FIELDS LIKE Skeleton

在新表中包含那些与字段梗概 Skeleton 相匹配的原表字段,新表用 SORT 命令创建。

FIELDS EXCEPT Skeleton

在新表中包含那些不与字段梗概 Skeleton 相匹配的原表字段。
字段梗概 Skeleton 支持通配符。例如,如果想在新表中包含所有以 A 和 P 开头的字段,可以使用下面的命令:

SORT TO mytable ON myfield FIELDS LIKE A*,P*

可以将 LIKE 子句同 EXCEPT 子句组合使用:

SORT TO mytable ON myfield FIELDS LIKE A*,P* EXCEPT PARTNO*

NOOPTIMIZE

关闭 SORT 命令的 Rushmore 优化。有关详细内容,请参阅 SET OPTIMIZE 和深入了解 Rushmore 技术主题,或《开发指南》的第十七章“优化应用程序”。

说明

当前表中的一个或多个指定字段决定了记录在新表中出现的顺序。

重要内容
要确保有足够的磁盘空间保存新表,以及存储在排序过程中创建的临时工作文件,排序所需的磁盘空间可能是原表的三倍。可以用 DISKSPACE( ) 和 SYS(2020) 函数确定可用磁盘空间大小。如果在排序过程中,磁盘空间不足,Visual FoxPro 会显示错误信息,并删除临时工作文件。

包含数字和空格的字符型字段可能不会按照所希望的那样排序。这是因为数值型字段从右向左填充,空格位于左边;而字符型字段是从左向右填充,空格位于右边。
例如,表的两个记录包含字符型字段:一个是 1724,另一个是 18,而表按该字段以升序排序,则包含 1724 的记录会出现在包含 18 的记录的前面。这是因为 Visual FoxPro 从左向右读取字符型字段中的字符,由于 17(1724)比 18(18)小,则 1724 出现在前面。为避免这类问题,应在位数较小的数字前加零(0018),或者使用数值型字段。

热心网友 时间:2022-04-22 06:41

要将排序的结果转到一个新表中
要的话
use 表名
sort to 新表名 on 年龄 A for 性别="女"
不要的话
sort on 年龄 A for 性别="女"
用sort命令时千万不要写 asc 或desc ,只能写A或D ,否则会提示语法错误

热心网友 时间:2022-04-22 08:16

use xs.dbf (xh,xm)
sort to 新表名 on xh /a
use 新表名
brows
你看到一个以xh字段为准按照升序排列的新表

SORT TO TableName ON FieldName1 [/A | /D] [/C]
[, FieldName2 [/A | /D] [/C] ...] [ASCENDING | DESCENDING]
[Scope] [FOR lExpression1] [WHILE lExpression2]
[FIELDS FieldNameList | FIELDS LIKE Skeleton
| FIELDS EXCEPT Skeleton] [NOOPTIMIZE]

[/A | /D] [/C]
For each field you include in the sort, you can specify an ascending or descending sort order. /A specifies an ascending order for the field. /D specifies a descending order. /A or /D can be included with any type of field.
By default, the field sort order for character fields is case sensitive. If you include the /C option after the name of a character field, case is ignored. You can combine the /C option with the /A or /D option. For example, /AC or /DC.
In the following example, a new table named clients is created. The orders table is sorted on the order_date field in ascending order and the freight field in descending order.
USE orders
SORT TO clients ON order_date/A,freight/D
这种英文应该看得懂吧!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
瓷砖选购的三大误区 瓷砖的6大常见误区以及5大选购要点 瓷砖品牌推荐 瓷砖选购误区 瓷砖选购七大误区 突破表面防线 买优质产品! ...最好民办大学排名,南昌理工学院第一,江西科技学院第二 二本公认最好综合大学江西 ...江西工程学院,江西应用科技学院。这4个大学中哪个大学更好。_百度知... ...江西理工大学应用科学学院、江西科技学院、南昌理工 ...江西工程学院,江西应用科技学院。这4个大学中哪个大学更好 湖北教师职称有3010政策吗 拷贝/etc/passwd到home文件夹里重命名pw,然后用sort函数对该文件内容按ASCII码排 给定一个数组:int[] home={32,87,3,589,12,1076,2000,8,622,127};请按从小到大的顺序排列,并打印出来。 请举出与sort有关的词组以及其用法。 主题为“我爱你,汉字”的手抄报怎么做? 我要办手抄报,要一些关于汉字的内容. 手抄报我爱汉字内容怎么写400字 小学五级手抄报 我爱汉字 如何正确清理微信? 美图秀秀官网打不开 我爱你,汉字的手抄报怎么弄? 汉字手抄报可以分成哪些板块 "我爱你汉字手抄报"版面设计? 在花呗 当面话花领了500百怎么使用 为什么蚂蚁花呗里面有额度500元却不能用? 吴美璇用日语怎么写? 华为P9放大手势怎么开启 华为p9大光圈怎么打开 多地房贷利率现上行迹象 房地产金融监管高压持续 华为p9负一屏怎么打开 选择lpr还是固定利率上浮10%?选择lpr还是固定利率上浮10%,我是在东莞贷款200万 30年 unix终端查看目录/home的状态命令是什么? 归的组词我要简单 “homemade”是什么意思? perl语言sort相关 kind,sort,type,variety表示"种类"时有何区别? what kind of home do you live in linux sort排序问题 请问电脑在开始--运行--输入cmd回车后出现的命令行输入方式有什么用,我只会ping命令,还有什么命令啊? 如果某QQ好友被误删了,并且他是拒绝任何人添加的。可以恢复吗? 一个sqlserver的循环查询删除的SQL语句 qq拒绝加好友并拉黑怎么解除? QQ好友设置了拒绝被任何人添加,我把他删了还可以恢复吗? 如何不让html把左右尖括号自动转义? QQ把好友点成 拒绝接受此人请求 后怎么恢复 QQ上总是拒绝加好友,怎么恢复同意? 江户川乱步 手机qq,别人加我,不小心拒绝了,我该怎么找到那个加我的人? linux中标准输出stdout的理解问题 qq好友申请不小心按错拒绝了怎么恢复? 我的QQ 拒加好友,怎么才能恢复