sql - CTE 与 LIKE statemnet 结合
问题描述
我有一个问题。这是我的代码的一部分:
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 月
或者
墨西哥服务站取消
然后它工作正常。该查询将仓库记录设置到列Content_Search_XXX
中。
但是当“仓库”这个词最后出现时,例如:
2018 年 7 月 XYZ 研究仓库服务
然后查询忽略它,并且没有将仓库记录设置到列Content_Search_XXX
中。
请问有没有人可以建议我,并告诉我我做错了什么?
提前谢谢了!:)
解决方案
请尝试以下方法:
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
推荐阅读
- java - 将 Java 代码转换为 C# httpClient POST 自定义请求到转换服务器
- python - 如何将 mysql 查询转换为 sqlalchemy 查询
- html - 虽然分配了“position:absolute”和“display:flex”,但大小不是由其子项决定的
- maps - 向网站 Google 地图添加“邮政编码缩放”功能的指南
- python - 如何在熊猫中拆分没有给定分隔符的字符串
- python - python制表库:TypeError:zip_longest参数#1必须支持迭代
- css - Sweetalert 出现在 asp ModalPopupExtender 后面
- image - 我需要什么样的数据集质量才能提供给 CNN?(手语识别计划)
- spring - Web(会话)和 REST API 上的 Apache Wicket 和 Keycloak
- bash - 多个站点 FTP 下载,Bash 脚本中的多个变量 - 函数、循环还是其他?