To append a string at each comma
Example for the string 'A,B,C'.
Result should be 'beforestringAafterstringbeforestringBafterstringbeforestringCafterstring
when you need these operations ?
Mostly during automations , for example if you are retrieving the columns from the sys.columns table to generate a generic select statement with casting as below example
column names output from the syscolumns 'IID,Name,Age'
output : CAST(IID AS VARCHAR(MAX)), CAST(Name AS VARCHAR(MAX)), CAST(Age AS VARCHAR(MAX))
execute the script to create the function as below and run the below statement
select dbo.fn_stuff('xx_,xxxx,',',','before','after')
create function dbo.fn_stuff(@vString varchar(4000),@exp varchar(5),@vStart varchar(2000),@vEnd varchar(2000))
returns varchar(8000)
as
begin
declare @vRet varchar(8000)
SELECT @vRet= coalesce(nullif(cast(charindex(@vString,@exp) as varchar(max)),0),
STUFF(replace(@exp+@vString,@exp,@vEnd+@vStart) + @vEnd , 1,len(@vEnd),''))
return @vRet
end
|
No comments:
Post a Comment