【发布时间】:2010-08-12 16:46:32
【问题描述】:
这是所有 SQL SERVER 2000 专家的问题:
我只有一张表...我已经可以找到某个字段中的任何值是否也出现在另一条记录中。
I.E.:是否有任何记录 字段中的“ABCDEFGHI”,然后 “ABCDEFGHI”再次在同一 字段...但在另一个记录中。
但是当我尝试使用子字符串时遇到了麻烦。
I.E.:任何记录中是否有“CDEF” 一个字段,然后在那个字段中再次“DEFG” 相同的字段...但在另一个记录中。 (编辑:那当然不匹配。)
我正在尝试将一个字段的 PART 与另一个字段的 PART 进行比较。 仅比较字符 3-6 个字符,与字符 4-7。 (我需要为这两个字段指定我自己的开始结束范围。) 具体的字母是什么……没关系。只是他们“匹配”。
这似乎不起作用:
SELECT t1.ID + ' + ' + t2.ID
FROM InfoTable As t1
INNER JOIN InfoTable AS t2 ON t1.ID = SUBSTRING(t2.ID, 3, 4)
(编辑:我也不需要列出任何与自己匹配的记录。)
【问题讨论】:
-
远不清楚您要在这里找到什么。您是否希望所有在其中任何位置具有“CDEF”的记录都链接到在其中任何位置具有“DEFG”的所有其他记录?是否所有从位置 3 开始具有“CDEF”的记录都链接到从位置 4 开始具有“DEFG”的所有其他记录?是否所有具有公共字符串字符 3 到 6 的记录都链接到具有相同公共字符串字符 4 到 7 的所有其他记录?还有什么?
-
其中的任何地方?不,只是我指定的开始/结束子字符串。从位置 a 开始,长度为 b 个字符... 匹配从位置 c 开始,长度为 d 个字符的记录。 (当然,b 和 d 必须相同才能发生匹配。)
标签: sql sql-server-2000 substring inner-join duplicate-removal