首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 请高手们指教 [已结贴,结贴人:redsuns1979]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-06 22:46:00 楼主
    本人是SQL初学者,现需要实现这样一个数据查询。有两张表,所有字段都是一样的,我想查询两张表中某个字段的近似值,我应该怎么做?语句怎样写呢?有劳高手们指教!
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-06 23:06:431楼 得分:0
    怎么个近似法?什么数据类型?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-06 23:22:432楼 得分:0
    是字符型的数据记录,例如:第一张表中的“名称”字段某条记录的内容为:XX市XX区第二人民医院,每二张表中的“名称”字段内容为:XX区第二人民医院。我就是想把两张表中的“名称”字段内容相似的记录给找出来
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-06 23:38:423楼 得分:10
    SQL code
    declare @tbA table([名称] nvarchar(20)) insert into @tbA select 'XX市XX区第二人民医院' union all select 'XX市XX区第一人民医院' union all select 'XX市XX区第三人民医院' union all select 'XX市XX区医院' union all select 'XX市XX区人民医院' declare @tbB table([名称] nvarchar(20)) insert into @tbB select 'XX区第二人民医院' union all select 'XX区第一人民医院' union all select '第三人民医院' SELECT * FROM @tbA A LEFT JOIN @tbB B ON 1=1 WHERE charindex(B.[名称],A.[名称])>0 /* 名称 名称 -------------------- -------------------- XX市XX区第二人民医院 XX区第二人民医院 XX市XX区第一人民医院 XX区第一人民医院 XX市XX区第三人民医院 第三人民医院 */
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-07 00:02:404楼 得分:0
    谢谢,这位老师。问题是还有很多很多其他的部门,应该怎样找出近似的内容来?感谢赐教
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-07 00:35:515楼 得分:0
    近似 ?

    你搞点数据来说明一下近似
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-07 00:45:196楼 得分:0
    我再举下例子:
    比如表1名称字段中有以下内容
    XX县金电酒店
    XX县恒大宾馆
    XX县京广大厦
    XX县台南宾馆
    XX县富都宾馆
    XX县曙光旅店

    表2名称字段中有以下内容
    XX口岸医院
    XX市职工医院
    XX县新源联营加油站
    XX县石油企业集团公司水东加油站 
    XX县电城镇农业银行
    XX县电城镇卫生院
    XX县电城镇人民政府
    XX市XX县恒大宾馆
    XX市XX县京广大厦
    XX市XX县台南宾馆
    红色字体的内容其实都是同一个单位名称,只是表2的内容中多了XX市,但如果直接匹配的话就匹配不上嘛,听说要把记录读到一个临时表然后一条条记录匹配近似值。本人比较菜,希望各位多多包涵。

    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-07 00:49:007楼 得分:0
    不好意思因为我无法修改贴的内容,而上面那张贴又标错了一个单位名称,所以重新发
    我再举下例子:
    比如表1名称字段中有以下内容
    XX县金电酒店
    XX县恒大宾馆
    XX县京广大厦
    XX县台南宾馆
    XX县富都宾馆
    XX县曙光旅店

    表2名称字段中有以下内容
    XX口岸医院
    XX市职工医院
    XX县新源联营加油站
    XX县石油企业集团公司水东加油站 
    XX县电城镇农业银行
    XX县电城镇卫生院
    XX县电城镇人民政府
    XX市XX县恒大宾馆
    XX市XX县京广大厦
    XX市XX县台南宾馆
    红色字体的内容其实都是同一个单位名称,只是表2的内容中多了XX市,但如果直接匹配的话就匹配不上嘛,听说要把记录读到一个临时表然后一条条记录匹配近似值。本人比较菜,希望各位多多包涵。

    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-07 00:51:238楼 得分:0
    不好意思,上面的表1漏标了XX县恒大宾馆为红色了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-07 09:26:269楼 得分:10
    SQL code
    declare @tbA table([名称] nvarchar(20)) insert into @tbA select 'XX县金电酒店' union all select 'XX县恒大宾馆' union all select 'XX县京广大厦' union all select 'XX县台南宾馆' union all select 'XX县富都宾馆' union all select 'XX县曙光旅店' declare @tbB table([名称] nvarchar(20)) insert into @tbB select 'XX口岸医院' union all select 'XX市职工医院' union all select 'XX县新源联营加油站' union all select 'XX县石油企业集团公司水东加油站' union all select 'XX县电城镇农业银行' union all select 'XX县电城镇卫生院' union all select 'XX县电城镇人民政府' union all select 'XX市XX县恒大宾馆' union all select 'XX市XX县京广大厦' union all select 'XX市XX县台南宾馆' SELECT * FROM @tbA A LEFT JOIN @tbB B ON 1=1 WHERE (charindex(B.[名称],A.[名称])>0) or (charindex(A.[名称],B.[名称])>0) /* 名称 名称 -------------------- -------------------- XX县恒大宾馆 XX市XX县恒大宾馆 XX县京广大厦 XX市XX县京广大厦 XX县台南宾馆 XX市XX县台南宾馆 */
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-07 10:26:0810楼 得分:0
    表A的数据比表B的多,两张表的内容不规则也是按这样的语句写吗?
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved