姓名按要求过滤问题
现有一个dbf文件名为xingming其中有两列xm1,xm2
张三丰 张三
李四 王五
小丽 小莉
张子默 张了黑
高强 高强
。。。 。。。
需要达到的效果的是找到两列完全不同的姓名行,只要两列有一个字等于(也不考虑汉字位置)就过滤掉,只要完全完全不相等信息,比如以上例子返回:
李四 王五
请问如果写一个prg生成一个查询结果表。
Set Library To myfll Create Cursor test (xm1 V(10), xm2 V(10)) Insert into test Values ('张三丰', '张三') Insert into test Values ('李四', '王五') Insert into test Values ('小丽', '小莉') Insert into test Values ('张子默', '张了黑') Insert into test Values ('高强', '高强') Select * from test where StrApproach(xm1, xm2) = 0
create cursor tt (xm1 v(10), xm2 v(10)) insert into tt values ('张三丰', '张三') insert into tt values ('李四', '王五') insert into tt values ('小丽', '小莉') insert into tt values ('张子默', '张了黑') insert into tt values ('高强', '高强') select * from tt where !left(alltrim(xm1),2)$alltrim(xm2) and !substr(alltrim(xm1),3,2)$alltrim(xm2) and !substr(alltrim(xm1),5,2)$alltrim(xm2)
[此贴子已经被作者于2023-9-4 14:48编辑过]
CLEAR create cursor tt (xm1 v(10), xm2 v(10)) insert into tt values ('张三丰', '张三') insert into tt values ('李四', '王五') insert into tt values ('小丽', '小莉') insert into tt values ('张子默', '张了黑') insert into tt values ('高强', '高强') SCAN lCnt = 0 FOR ln = 1 TO LENC(ALLTRIM(xm1)) IF SUBSTRC(ALLTRIM(xm1), ln, 1) $ xm2 lCnt = lCnt + 1 EXIT ENDIF ENDFOR IF lCnt = 0 ? xm1, xm2 ENDIF ENDSCAN