我有两个表:A和B,他们每个都包含字符串。 当表A的字符串包含表B的字符串时(B.stringColumn是A.stringColumn的子串),我需要查找表A和表B之间的所有匹配。SQL:内部连接,其WHERE子句包含CHARINDEX() - 提高性能
我做到了用CHARINDEX()
功能如下代码:
SELECT *
FROM A, B
WHERE CHARINDEX(B.stringColumn, A.stringColumn) > 0
有没有更有效的方法来做到这一点?
这张表可能包含大量的数据,这就是为什么我问这个问题。
由于提前, Nuriel
我相信如果你只是在另一个字符串的任何地方对子字符串进行搜索,那么只有全文索引可以提供帮助(尽管对FTI不太熟悉)。如果这是一个以子串开头的字符串,那么您可以利用目标列上的索引。我将使用以下语法:A.stringColumn LIKE%B.stringColumn%并查看执行计划是否能够使用索引。 – BlackjacketMack