sql - 在 SQL Server 查询中使用模式和 patindex 函数时如何忽略特定的字符串值?
问题描述
我在这里有这个查询。
WITH Cte_Reverse
AS (
SELECT CASE PATINDEX('%[^0-9.- ]%', REVERSE(EmailName))
WHEN 0
THEN REVERSE(EmailName)
ELSE left(REVERSE(EmailName), PATINDEX('%[^0-9.- ]%', REVERSE(EmailName)) - 1)
END AS Platform_Campaign_ID,
EmailName
FROM [Arrakis].[xtemp].[Stage_SendJobs_Marketing]
)
SELECT REVERSE(Platform_Campaign_ID) AS Platform_Campaign_ID, EmailName
FROM Cte_Reverse
WHERE REVERSE(Platform_Campaign_ID) <> '2020'
AND REVERSE(Platform_Campaign_ID) <> ''
AND LEN(REVERSE(Platform_Campaign_ID)) = 4;
它大部分都在工作,下面是结果集的屏幕截图。
我在上面发布的查询从为我要提取的列设置的初始值中提取了右侧的 4 个数字。但是我无法弄清楚当最右边的值是 -v2、-v1 等时,我如何也可以让查询忽略案例。基本上任何带有 -v 的东西以及它是什么数字版本。
解决方案
如果你想要四位数字,那么一种方法是:
select substring(emailname, patindex('%[0-9][0-9][0-9][0-9]%', emailname), 4)
推荐阅读
- javascript - Angular8 充满了 HttpClient 响应头
- git - 如何在不出现 git status 错误的情况下将我的 mecurial repo 保存在 sourcetree 上
- c - why doesn't this program in C language print anything?
- jquery - 您如何将今天的日期与 Django 使用 JavaScript/JQuery 提供的日期进行比较?
- python - pyvista polydata(梯形)上的纹理看起来沿对角线弯曲
- javascript - 创建 chrome 扩展时,API 调用应该从后台脚本还是前端进行?
- ruby-on-rails - 从 rails 中的活动作业类调用服务类
- c# - Umbraco内容中未填写图片src
- python - 使用 matplotlib 绘制函数
- c++ - ostringstream 内部缓冲区持久性