首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >patindex模式

patindex模式
EN

Stack Overflow用户
提问于 2015-04-27 22:26:14
回答 1查看 28关注 0票数 0

我正在尝试裁剪一列(ActionOutput),使其只显示该列中的两个子字符串。

我只需要显示以WRD或CAS开头的8个字符条目。

该列可以包含任何类型/数量的字符,并且它们不会总是包含具有指定模式的条目。

我的查询如下所示:

代码语言:javascript
复制
SELECT  
 TSRPT_C009 = ExecutionTime,  
 LastStatusMessageID, 
 LastStatusMessageIDName, 
 TSRPT_C007 = ExitCode, 
 TSRPT_C008 = ActionOutput,
(PATINDEX('%[cas][wrd]%',ActionOutput)) AS CASID

来自v_TaskExecutionStatus tse

我还尝试了这个:

代码语言:javascript
复制
substring(
(substring(ActionOutput,(CHARINDEX('WRD0',ActionOutput)),8)),(CHARINDEX('CAS0',ActionOutput)),8
) AS CASID

但它也不适用于第二种模式。

有没有办法在字符串中搜索多个模式(从select返回)并返回它/它们。

如果你有任何问题,请不要提出来。

斯蒂芬

EN

回答 1

Stack Overflow用户

发布于 2015-04-27 22:30:35

PATINDEX()返回整数,而不是字符串。你可以试试这个:

代码语言:javascript
复制
(case when ActionOutput like '%cas%'
      then substring(ActionOutput, charindex('cas', ActionOutput), 8)
      when ActionOutput like '%wrd%'
      then substring(ActionOutput, charindex('wrd', ActionOutput), 8)
 end) as caswrd_8
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29898476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档