怎么在foxpro的replace命令中使用某字段在某个范围的条件语句

在select命令中可以使用where x in (2, 3, 5, 7)作为条件语句
但是在replace命令中in有其它功能,所以在条件语句中不能使用in
请问有没有什么可以取代的方法?
范围很大,无法用or来解决
另外,需要两个字段同时满足相关的条件代码怎么写?
比如我希望条件是(x,y)取(1,3),(2,3)或(2,4)而不是x in (1,2)且y in (3,4)

第1个回答  2015-08-25
换个函数即可, inlist()
replace .... for inlist(x,2,3,5,7)

另外的:
(x=1 and y=3) or (x=2 and y=3) or (x=2 and y=4)追问

数据量大到很难罗列出来,只能用一个包含范围数据的dbf或用select选出来
附加问题也是,能不能用一个数组表示呢?类似于inlist((x,y),(1,3),(2,3),(2,4))

追答

如果用sql语句,很简单, 一句搞定. 如果用replace就要多个语句.
假定你的内容都在一个临时表curtb里, 字段是f1,类型是数值
1, update 表 set 字段1=... where 字段2 in (select f1 from curtb)
2, 用replace有多种写法, 反正要好多行代码, 无非就是逐个扫描记录,判断是否在curtb表里,在就replace.

哪个方法简单一目了然,肯定首选方法1

本回答被网友采纳