注册 登录
编程论坛 SQL Server论坛

请找出“姓名”中有二个字相同的人的记录

gotopx 发布于 2012-06-24 14:43, 618 次点击
序号 姓名 金额
1 李国民 10000
2 黄亚林 11000
3 李国中 3000
4 赵福喜 5000
5 黄亚南 8000
6 谢振民 13000
7 于来新 600
8 于来达 6540
9 赵寿山 7750
10 杨菊英 9630
11 杨文英 2500
12 陈东生 13000
13 陈卫明 6600


请找出“姓名”中有二个字相同的人的记录。
如李国民与李国中
 杨菊英与杨文英

条件是姓氏相同,后面的至少有1个字相同
 请帮忙写一个SQL查询语句
1 回复
#2
netlin2012-06-26 00:10
这个问题挺有趣的,试一下:

假定楼主所说的表名为:abc
select a.序号,a.姓名,a.金额,b.序号,b.姓名,b.金额
    from abc a inner join abc b
        on a.序号<b.序号
        and substring(a.姓名,1,1)=substring(b.姓名,1,1)
        and (charindex(substring(a.姓名,2,1),b.姓名,2)>0 or charindex(substring(a.姓名,3,1), b.姓名,2)>0)

(方法不怎么高明,运行效率应该不高。抛砖引玉吧!)
1