以下是引用sdta在2015-10-29 12:01:47的发言:
现在发现AT()与STUFF()组合替换单个字符(字符串没测试)速度很快。
昨天用AT()写的一段没考虑 '05611','005' 这样的情况。
今天用STRTRAN()来直接替换
首次出现位置后判断剩余长度来确定。
没测试速度。
clear
*表1
CREATE CURSOR T1(xh INT,jg C(10))
INSERT INTO T1(xh,jg) VALUES(1,'05611')
INSERT INTO T1(xh,jg) VALUES(2,'47896')
INSERT INTO T1(xh,jg) VALUES(3,'81222')
INSERT INTO T1(xh,jg) VALUES(4,'48068')
INSERT INTO T1(xh,jg) VALUES(5,'54969')
*表2
CREATE CURSOR T2(xh INT,jg C(10))
INSERT INTO T2(xh,jg) VALUES(1,'005')
INSERT INTO T2(xh,jg) VALUES(2,'048')
INSERT INTO T2(xh,jg) VALUES(3,'128')
INSERT INTO T2(xh,jg) VALUES(4,'379')
INSERT INTO T2(xh,jg) VALUES(5,'468')
SELECT T2.jg FROM T2 WHERE T2.jg NOT in (SELECT b.jg FROM T1 A,T2 B WHERE LEN(ALLTRIM(strt(strt(strt(a.jg,SUBSTR(b.jg,1,1),'',1,1),SUBSTR(b.jg,2,1),'',1,1),SUBSTR(b.jg,3,1),'',1,1)))=2)