DECLARE @Numbertable table
(
ID INT PRIMARY KEY
)
INSERT INTO @Numbertable
select TOP 1000 ROW_NUMBER() OVER(order by si.object_id)
from sys.objects si,sys.objects s
DECLARE @separatolog TABLE
(
SeparatorLogID INT,
ID INT IDENTITY(1,1) PRIMARY KEY
)
DECLARE @STR varchar(100) = 'FN,SP,TBL,091.8891'
DECLARE @Separator VARCHAR(10) = ','
DECLARE @ValueAdd VARCHAR(10) = '80990'
DECLARE @Action VARCHAR(10) = '3'--1. P..PostFix 2. R..Prefix 3.Number for postion.
IF (ISNUMERIC(@Action) =0)
BEGIN
SELECT @STR =
STUFF((
SELECT
CASE WHEN @Action = 'R' THEN ISNULL(@Separator+@ValueAdd,'') ELSE '' END
+
ISNULL(@Separator+@Str,'')
+
CASE WHEN @Action = 'P' THEN ISNULL(@Separator+@ValueAdd,'') ELSE '' END
),1,1,'')
END
ELSE
BEGIN
INSERT INTO @separatolog
select distinct CHARINDEX(',',@str,ID)
from @Numbertable
where ID <= LEN(@str) and CHARINDEX(',',@str,ID) > 0
ORDER BY 1
DECLARE @CurrentSepartorID INT
SET @CurrentSepartorID = isnull((select SeparatorLogID
from @separatolog where ID = CAST(@Action AS INT)-1),CASE WHEN @Action = 1 THEN 0 ELSE LEN(@str)+1 END)
select @STR = STUFF(SUBSTRING(ISNULL(@Separator+@str,''),1,@CurrentSepartorID)
+ISNULL(@Separator+@ValueAdd,'')
+ISNULL(@Separator+NULLIF(SUBSTRING(@str,@CurrentSepartorID+1,LEN(@str)),''),''),1,1,'')
END
select @STR
Regards,
Mitesh OSwal
+918698619998