回答

收藏

使用另一列作为搜索词SQL Server全文本搜索

技术问答 技术问答 126 人阅读 | 0 人回复 | 2023-09-13

我试图基于另一个字段的结果SQL Server 2016年全文搜索
. u4 Z1 S% m, j. ^8 E0 x查询文本 CSN可以得到结果,但如何将 CSN一列中的所有结果,而不仅仅是一个文本结果?
, D# e5 H- G/ ]8 W6 n例如,工作表中的所有项目是否等于另一个表中的名称SX列中的所有结果?
- @6 c: l* x! ~' H- dSELECT *FROM dbo.sheetWHERE CONTAINS(sheet,'CSN             " Y* d% o7 ~6 }" e7 p' W
    解决方案:                                                               
& c. R3 x5 B% S/ o                                                                据我所知,列引用不能用作搜索词CONTAINS。但是,如果你试图将搜索词放入变量,CONTAINS接受它:6 i( A$ W0 M  Q- b
DECLARE @searchTerm VARCHAR(10) = 'CSN'SELECT *FROM dbo.sheetWHERE CONTAINS(sheet,@searchTerm)或者. @2 f4 i+ F" P( W. U: x' _
DECLARE @searchTerm VARCHAR(10) = ''SELECT TOP 1 @searchTerm=SX FROM table2 WHERE ...SELECT *FROM dbo.sheetWHERE CONTAINS(sheet,@searchTerm)另一种方法可能是创建用户定义的函数,它将返回带有搜索结果的表,并将搜索项目作为参数传递给表。您将在函数中呼叫SELECT ... WHERECONTAINS(sheet,@funcParam)。然后,你必须使用它CROSS APPLY联接到表值函数的结果。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则