查询以跳过第一个分隔符,然后选择第二个分隔符

时间:2018-12-13 02:23:13

标签: sql sql-server substring charindex

我正在尝试在哪里运行查询

,replace(b.[X.Logs],' ','.') as 'logs'
,CT2 as 
(
  Select *
    , CHARINDEX('Diagnostics',[logs]) as 'DiagBGN1'
    , CHARINDEX('.',[logs],CHARINDEX('Diagnostics',[logs])) as 'DiagEND1'
  From CT1
)
,CT3 as
(
  Select * 
    ,SUBSTRING([logs],[EPSABGN1]+1,[EPSAEND1]-[EPSABGN1]-1) as 'EPSA_CODE'
  From CT2
)

我希望代码跳过第一个.,然后选择下一个.作为分隔符。

1 个答案:

答案 0 :(得分:1)

您可以按以下方式使用它:

declare @S varchar(200) = 'Diagnostics.Passed.hardware';
select substring(@s, charindex('.', @S)+1, len(@s));

CharIndex将提供第一个“。”的“索引”。然后使用它从字符串中获取子字符串。这将“忽略”“诊断”一词。从字符串。