【发布时间】:2012-11-13 16:00:29
【问题描述】:
我需要找到一种方法,将我在一个表中的数字序列与另一个表中的序列匹配,但如果可能的话,在 SQL 中使用不同的数值。
例子:
Table A contains
Word | Location
-----------------
Quick 2
Brown 3
Fox 4
Table B contains
Word | Location | Product
------------------------------
Quick 2 A
Brown 3 A
Fox 4 A
Brown 8 B
Fox 9 B
Quick 10 B
Quick 7 C
Quick 18 D
Brown 19 D
Fox 20 D
基本上我只想从表 B 中返回 Product A 和 D,因为它们是唯一引用所有三个单词的单词,重要的是这些单词的顺序相同,即 2、3、4 与18,19,20 仅具有不同的数值。
很容易找出引用所有单词的所有产品,但我只想要以正确顺序匹配所有相同单词的产品。
请注意,通常顺序不会像 2、3、4 那样简单,它可能是 2、7、9,在这种情况下,如果产品的所有单词的顺序为 36、41、43,我会希望它返回。
我希望以上内容有意义
【问题讨论】:
-
+1 同情这样一个尴尬的问题 ;-)
-
哪个 RDBMS sql 服务器?还是甲骨文?
-
SQL 2012 - 我已经为此苦苦思索了一段时间,但并不高兴。我以为我通过按位置 asc 将单词排序为单个字符串并按产品 id 分组然后执行 PATINDEX 来实现它,但是虽然这返回了与字符串匹配的产品,但它并没有考虑到顺序
标签: sql sql-server sql-server-2012