How to Split advance string in SQL
DECLARE @PureParameter varchar(Max)='Data_$dId=16910797389658|oId=2|fId=1054|iTy=14|'
DECLARE @dId varchar(Max)
DECLARE @oId varchar(Max)
DECLARE @fId varchar(Max)
DECLARE @iTy varchar(Max)
--------@dId SETUP------------
SELECT @dId=LEFT(@PureParameter,CHARINDEX('|',@PureParameter))--GET FIRST PIPE PART
SELECT @PureParameter=REPLACE(@PureParameter,@dId,'')--REMOVE FIRST PIPE PART
PRINT '@dId='+@dId
SELECT @dId=REPLACE(@dId,'Data_$dId=','')---GET ID(REMOVE Data_$dId=)
SELECT @dId=REPLACE(@dId,'|','')---GET ID(REMOVE |)
PRINT '@dId='+@dId
-------@oId SETUP------------
SELECT @oId=LEFT(@PureParameter,CHARINDEX('|',@PureParameter))--GET SECOND PIPE PART
SELECT @PureParameter=REPLACE(@PureParameter,@oId,'')--REMOVE SECOND PIPE PART
PRINT '@oId='+@oId
SELECT @oId=REPLACE(@oId,'oId=','')---GET @oId(REMOVE oId=)
SELECT @oId=REPLACE(@oId,'|','')---GET @oId(REMOVE |)
PRINT '@oId='+@oId
-------@fId SETUP------------
SELECT @fId=LEFT(@PureParameter,CHARINDEX('|',@PureParameter))--GET THIRD PIPE PART
SELECT @PureParameter=REPLACE(@PureParameter,@fId,'')--REMOVE THIRD PIPE PART
PRINT '@fId='+@fId
SELECT @fId=REPLACE(@fId,'fId=','')---GET @@fId(REMOVE oId=)
SELECT @fId=REPLACE(@fId,'|','')---GET @@fId(REMOVE |)
PRINT '@fId='+@fId
-------@iTy SETUP------------
SELECT @iTy=RIGHT(@PureParameter,CHARINDEX('|',@PureParameter))--GET THIRD PIPE PART
SELECT @PureParameter=REPLACE(@PureParameter,@iTy,'')--REMOVE THIRD PIPE PART
PRINT '@iTy='+@iTy
SELECT @iTy=REPLACE(@iTy,'iTy=','')---GET @@fId(REMOVE oId=)
SELECT @iTy=REPLACE(@iTy,'|','')---GET @@fId(REMOVE |)
PRINT '@iTy='+@iTy
SELECT @oId
SELECT @iTy
SELECT @PureParameter
we use LEFT function and CHARINDEX function to split word.what i did above example is split @PureParameter parameter using first pipe symbol and get that split string into another variable called @dId(in first part) and relapsed @PureParameter using @dId variable finally remove pipe (|) symbol from @dId.
Comments
Post a Comment