【问题标题】:Select entries that fulfil requirements laid out by dynamic table选择满足动态表列出的要求的条目
【发布时间】:2021-03-14 13:11:08
【问题描述】:

我正在尝试进行关键字搜索,该关键字搜索需要满足所有条件才能显示结果。我已经创建了一种从字符串中创建自定义表的方法,该表存储了当前搜索所需的所有关键字。

我已经能够使用以下方法实现“或”

dbo.MultipleTextSearchValuesOR - 用于制作关键字表

select Title from vwIncidentSearchView inner join dbo.MultipleTextSearchValuesOR('Testing|Check') on Title Like id

这很好用,但似乎无法解决“和”(例如,结果必须有“测试”和“检查”)。

任何帮助将不胜感激

【问题讨论】:

    标签: sql join conditional-statements keyword


    【解决方案1】:

    我想通了。必须完成的方法是使用带有将字符串拆分为表格的函数的交叉应用。

    然后条目必须按所有字段分组。最后必须检查它们是否满足所有必需的关键字。

    我确实意识到这是一个相当混乱的方法,而且它不是最优化的方法,所以如果其他人对提高性能有任何建议,我们将不胜感激

    例子:

    declare @where nvarchar(max)
    declare @TitleLikeClause nvarchar(max)
    declare @Title nvarchar(max)
    
    set @Title = 'Down&Email'
    
    SELECT 
           Referenceid, 
           Title 
    FROM vwIncidentSearchView  
    cross apply
           (select 
                 Data 
           from Split(@Title, '&') candidate 
           where 
                 Title Like candidate.Data) t2o group by Referenceid, Title having count(*) = (select max(ID) from Split(@Title, '&'))
    

    【讨论】:

      猜你喜欢
      • 2017-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-18
      • 2015-09-29
      • 2019-04-24
      • 1970-01-01
      相关资源
      最近更新 更多