Reputation: 1
I have data like ABC_DEF_123,DEF_GHI_345,GHI_JKL_678 I need to select 123,345,678 (i.e) Between "," and "" How to select between "," and last "" Data is not a static one. Help me out... Thanks in advance
Upvotes: 0
Views: 228
Reputation: 12309
Try below code ,try to wrap below code in function
DECLARE @string NVARCHAR(MAX)='ABC_DEF_123,DEF_GHI_345,GHI_JKL_678'
DECLARE @delimiter CHAR(1)=','
DECLARE @output TABLE(splitdata NVARCHAR(MAX) )
BEGIN
DECLARE @start INT, @end INT
SELECT @start = 1, @end = CHARINDEX(@delimiter, @string)
WHILE @start < LEN(@string) + 1 BEGIN
IF @end = 0
SET @end = LEN(@string) + 1
INSERT INTO @output (splitdata)
VALUES(SUBSTRING(@string, @start, @end - @start))
SET @start = @end + 1
SET @end = CHARINDEX(@delimiter, @string, @start)
END
--
DECLARE @values NVARCHAR(max)=''
SELECT @values=RIGHT(splitdata,3)+','+@values FROM @output ORDER BY splitdata DESC
SELECT (SUBSTRING(@values,0,LEN(@values)))
END
Upvotes: 1
Reputation: 43
Try the below script which may help you
select right('ABC_DEF_123',3) as DataValue
select substring('ABC_DEF_123',patindex('%[0-9]%','ABC_DEF_123'),len('ABC_DEF_123'))
Upvotes: 0