注册 登录
编程论坛 VFP论坛

求列数据最值

fdqzy 发布于 2021-09-17 10:39, 2567 次点击
程序代码:
create cursor b1 (m1 n(1))
insert into b1 values (0)
insert into b1 values (1)
insert into b1 values (2)
insert into b1 values (8)
insert into b1 values (3)
insert into b1 values (4)


求m1中第1,2,3...大的值。
如最大值为8
第2大值为4.....

谢谢!
17 回复
#2
吹水佬2021-09-17 11:15
排序
#3
fdqzy2021-09-17 11:22
以下是引用吹水佬在2021-9-17 11:15:14的发言:

排序

如何使用,望指点!

[此贴子已经被作者于2021-9-17 11:25编辑过]

#4
fdqzy2021-09-17 11:29
回复 2楼 吹水佬
用sele查询排序?
#5
吹水佬2021-09-17 11:35
回复 3楼 fdqzy
SELECT * FROM b1 ORDER BY m1 DESC
#6
fdqzy2021-09-17 11:35
能否用其他方式?
#7
吹水佬2021-09-17 11:46
以下是引用fdqzy在2021-9-17 11:35:51的发言:

能否用其他方式?

其他排序方法如建索引表,排队应该是最好的吧,一目了然,想要第几大就是第几行。
其他方法:比较法、对号入座法......视实际情况看是否适合
#8
fdqzy2021-09-17 11:47
谢谢!!!
#9
fdqzy2021-09-17 12:07
程序代码:
create cursor b1 (m1 c(1))
insert into b1 values ("")
insert into b1 values ("1")
insert into b1 values ("N")
insert into b1 values ("8")
insert into b1 values ("M")
insert into b1 values ("5")

这种表如何求数字的1,2,3大的值?
#10
fdqzy2021-09-17 12:15
以前用Calculate求最大值,但求第2及以后的值就不能用了.
#11
fdqzy2021-09-17 12:23
懂了,用条件筛选数字排序!
#12
吹水佬2021-09-17 12:59
回复 9楼 fdqzy
SELECT * FROM b1 WHERE ISDIGIT(m1) ORDER BY m1 DESC
#13
fdqzy2021-09-17 15:10
回复 12楼 吹水佬
谢谢!
#14
mywisdom882021-09-17 17:34
SELECT TOP 10 * FROM b1 ORDER BY m1 DESC &&前10名
#15
fdqzy2021-09-18 05:52
以下是引用mywisdom88在2021-9-17 17:34:50的发言:

SELECT TOP 10 * FROM b1 ORDER BY m1 DESC &&前10名

谢谢!
#16
sdta2021-09-18 21:31
以下是引用fdqzy在2021-9-17 12:07:25的发言:

create cursor b1 (m1 c(1))
insert into b1 values ("")
insert into b1 values ("1")
insert into b1 values ("N")
insert into b1 values ("8")
insert into b1 values ("M")
insert into b1 values ("5")
这种表如何求数字的1,2,3大的值?

CLEAR
SET COLLATE TO "MACHINE"
create cursor b1 (m1 c(1))
insert into b1 values ("")
insert into b1 values ("1")
insert into b1 values ("N")
insert into b1 values ("8")
insert into b1 values ("M")
insert into b1 values ("5")
COPY TO ARRAY abb
ASORT(abb, 1, ALEN(abb), 1)
LIST MEMORY LIKE abb
下标即排序的名次
#17
sam_jiang2021-10-18 16:27
回复 6楼 fdqzy
如果只是求最大最小值,可以用帮助文件里的范例:
gnMaximum = 0
gnMinimum = 1000
SCAN
   gnMinimum = MIN(gnMinimum, b1)
   gnMaximum = MAX(gnMaximum, b1)
ENDSCAN

哈哈。
#18
HUXINGKE2021-10-18 16:32
select max(M1) from B1
1