簡體   English   中英

在字符串中的字符“ _”之后提取字符

[英]Extract characters after character '_' in string

我在長度可變的sql server中有以下字符串

Declare @string Varchar(max) = 'abjrc_chdc_hyku_abv_ytr_DCD_HTR_TBF'

如何在此字符串的第四個“ _”之后選擇字符? (預期結果:ytr_DCD_HTR_TBF)

還有如何只選擇字符串的第四部分(結果:abv)

有任何想法嗎?

謝謝

如果您隨時清楚知道字符串中有多少個字符,則可以使用SUBSTRING ,因此您可以像這樣調用第一個字符串

Declare @string Varchar(max) = 'abjrc_chdc_hyku_abv_ytr_DCD_HTR_TBF';
Declare @last4 Varchar(max) = SELECT SUBSTRING(@string, 21, 35);
Declare @before4 Varchar(max) = SELECT SUBSTRING(@string, 17, 19);

如果您確實需要為每個“ _”分割字符串,那么您也可以使用 ,希望對我有所幫助。

如果將其用於多行創建功能會更好。 我為您的兩個問題准備了樣品:

Declare @string Varchar(max) = 'abjrc_chdc_hyku_abv_ytr_DCD_HTR_TBF'
Declare @NewString Varchar(max) = @string
Declare @Find4thPart Varchar(max) =''

DECLARE @Sep    VARCHAR(10)='_'
DECLARE @Pos    INT=4

WHILE @Pos>0
BEGIN
SET @NewString = SUBSTRING(@NewString, CHARINDEX(@Sep,@NewString)+1,100)

IF @Pos=2
SET @Find4thPart = SUBSTRING(@NewString,1, CHARINDEX(@Sep,@NewString)-1)

SET @Pos=@Pos-1
--SELECT @NewString 
END

seLECT @NewString ,@Find4thPart

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM