求指导,多字段最优匹配

OO_is_just_P 2013-06-13 08:55:20
A表:A,B,C,D,E,F,G,H A-G都是nvarchar的,H数字的
'a','b','','','','','',100

'a','b','c','','','','',102

'a','b','c','d','','','',108

'a','b','c','d','e','f','g',120

B表:A,B,C,D,E,F,G,H A-G都是nvarchar的,H数字的

现在我的想法是从A,B,C,D,E,F,G开始匹配,得到H,
如果无法匹配成功就匹配A,B,C,D,E,F得到H
依此类推,直到连最基本的A都匹配不了才算无匹配。

现在完全没好思路。基本两种方法,一种是用程序循环,二就是写存储过程,但都是挺麻烦的。
还有就是索引表A 保证全''好,还是全NULL好呢?
...全文
166 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
OO_is_just_P 2013-06-13
  • 打赏
  • 举报
回复
引用 5 楼 u010581018 的回复:
[quote=引用 2 楼 foxyy8888 的回复:] 楼上的方法我也想过,我用Excel画了张示意图。 就是根据上面的表,填充下面表的H列。
那是那个方法效率太低么... 我不懂语句优化啥的。要是效率的话,没准循环啥的更快也说不定。[/quote] 不是效率的问题可以看一下,实际的数据大于模板数据的。 比如A,B,C,D='a','b','c','d'的可以匹配 A,B,C,D='a','b','c',''的,所以like不行。
yo_yo1120 2013-06-13
  • 打赏
  • 举报
回复
引用 2 楼 foxyy8888 的回复:
楼上的方法我也想过,我用Excel画了张示意图。 就是根据上面的表,填充下面表的H列。
那是那个方法效率太低么... 我不懂语句优化啥的。要是效率的话,没准循环啥的更快也说不定。
OO_is_just_P 2013-06-13
  • 打赏
  • 举报
回复
-Tracy-McGrady- 2013-06-13
  • 打赏
  • 举报
回复
OO_is_just_P 2013-06-13
  • 打赏
  • 举报
回复
楼上的方法我也想过,我用Excel画了张示意图。
就是根据上面的表,填充下面表的H列。
yo_yo1120 2013-06-13
  • 打赏
  • 举报
回复
我的想法是把A-G字段并成一个字段,利用like模糊匹配,选择max(length(A表的A-G))的记录,这样或许写语句会简单一些。
OO_is_just_P 2013-06-13
  • 打赏
  • 举报
回复
先用程序循环写好了,以后看如果有需要再写成存储过程吧。

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧