CTE与LIKE statemnet结合

时间:2018-09-27 08:17:55

标签: sql sql-server

我有一个问题。 这是我的代码的一部分:

case when ( EXISTS ( SELECT TOP 1 1 FROM CTE WHERE UPPER(s.[Contents Total]) LIKE UPPER('%' + CTE.Contents + '%'))) Then 'depot' ELSE '-' end as Content_Search_XXX

我不知道如何调整此部分LIKE UPPER('%' + CTE.Contents + '%')。 因为当在Contents Total列中找到以下内容:

  

2018年8月的仓库服务

  

墨西哥维修站已取消

然后正常工作。该查询将 depot 记录设置到列Content_Search_XXX中。

但是当表达式“ depot”结尾时,例如:

  

2018年7月XYZ研究中心服务

然后查询将其忽略,并且未将 depot 记录设置到列Content_Search_XXX中。

请问有人可以建议我,并告诉我我做错了什么吗?

非常感谢! :)

1 个答案:

答案 0 :(得分:0)

请尝试以下操作:

CASE WHEN
EXISTS (
SELECT TOP 1 1 FROM CTE
WHERE CHARINDEX(TRIM(CTE.Contents), s.[Contents Total] COLLATE Latin1_General_CI_AS) > 0)
THEN 'depot'
ELSE '-'
END
AS Content_Search_XXX