sql server - Splitting contents of one sql column into 3 columns based on certain characters that always happen in the value -
i'm trying form sql query, using sql server 2014 without creating function. not have permissions on database create functions have query only.
i have column named test
example value of:
accounting -> add missing functionality in payable -> saving blank missing row
i want query return information (of varying length) between 2 arrows (->
). have tried right, left, substring, charindex , patindex functions , various combinations of each.
basically query needs substring(test, charindex(' -> ', test) +3, <some length here>)
the length part i'm having hard time figuring out. need full length minus first part before , including first ->
evaluates to:
add missing functionality in payable -> saving blank missing row
from result, need remove after , including ->
, leave me with:
add missing functionality in payable
at end of day, want split 1 column 3 so:
domain | feature | test ------------------------------------------------------------------------------ accounting | add missing functionality in payable | saving blank missing row
can show me how query, without having write function? suggestions appreciated have been working on 1 portion of query better part of 4 hours now. thank in advance help. have great day!!
i tried following query , woking fine me:
declare @x varchar(1000) set @x = 'accounting -> add missing functionality in payable -> saving blank missing row' select substring(@x,1,charindex('->',@x) - 1) domain, substring(@x,charindex('->',@x) + 2,len(substring(@x,charindex('->',@x) + 2,len(@x))) - len(substring(@x,len(@x) - charindex('>-',reverse(@x)) ,len(@x)))) feature, substring(@x,len(@x) - charindex('>-',reverse(@x)) + 2 ,len(@x)) test
you have use query:
select substring([test],1,charindex('->',[test]) - 1) domain, substring([test],charindex('->',[test]) + 2,len(substring([test],charindex('->',[test]) + 2,len([test]))) - len(substring([test],len([test]) - charindex('>-',reverse([test])) ,len([test])))) feature, substring([test],len([test]) - charindex('>-',reverse([test])) + 2 ,len([test])) test mytable --replace mytable table name
Comments
Post a Comment