比如有两个表格,假设说一个为电子表格,一个是手工书写的表格。需要看手写表格中的名字是否在电子表格中存在。当他们都是按已有顺序排序时就比较好办。核对起来最快,而如果顺序都是打乱的。最快的方法不是B表格中按先后顺序查找某个名字。经过考虑,把B表中的名字用自定义SQL函数(可百度找找)生成首字母和名字前两个字的字母。然后将字母排序。这样查找时最快。
比如:
a表
1.张三
2.李四
3.王五
b表
1.谢六
2.王五
3.李四
4.张三
select ‘L1′ = dbo._fn_xx(name),’L2’ = dbo._fn_xx(name),name
from t1 order by L1,L2
L LS 李四
W WW 王五
X XL 谢六
Z ZS 张三
排序后之所以比较快,原理就是索引原理。也就是比如找张三。就会很快定位到Z,而不是从头查找。虽然要经过几次定位,但是因为姓名首字母比较分散。所以查找速度还是很快的。
我最开始没有用这种方法,采用从手写的50个名字去找电子表格中的50个名字核对电话号码。结果崩溃。。虽然理论上想起来很容易核对。没有效率。而采用上面的方法效率很好。