小编Ale*_*der的帖子

在CONTAINS函数中使用JOIN语句

在SQL Server数据库中,我有一个带有很多INNER JOINs语句的View。最后一个联接使用LIKE谓词,这就是为什么它工作太慢的原因。查询看起来像:

SELECT *
FROM A INNER JOIN
B ON A.ID = B.ID INNER JOIN
C ON C.ID1 = B.ID1 INNER JOIN
...........................
X ON X.Name LIKE '%' + W.Name  + '%' AND
            LIKE '%' + W.Name2  + '%' AND
            LIKE '%' + W.Name3  + '%'
Run Code Online (Sandbox Code Playgroud)

我想使用CONTAINS代替LIKE:

SELECT *
FROM A INNER JOIN
B ON A.ID = B.ID INNER JOIN
C ON C.ID1 = B.ID1 INNER JOIN
...........................
X ON CONTAINS(X.Name, W.Name) AND
     CONTAINS(X.Name, W.Name2) AND
     CONTAINS(X.Name, W.Name3)
Run Code Online (Sandbox Code Playgroud)

我知道CONTAINS的运行速度比LIKE快,并且无法在JOIN语句中使用CONTAINS。在这种情况下或建议中有什么解决方法吗?提前致谢。

sql-server join contains sql-like

4
推荐指数
2
解决办法
2万
查看次数

标签 统计

contains ×1

join ×1

sql-like ×1

sql-server ×1