I'm dealing with an annoying database where one field contains what really should be stored two separate fields. So the column is stored something like "The first string~@~The second string", where "~@~" is the delimiter. (Again, I didn't design this, I'm just trying to fix it.)
I want a query to move this into two columns, that would look something like this:
UPDATE UserAttributes
SET str1 = SUBSTRING(Data, 1, STRPOS(Data, '~@~')),
str2 = SUBSTRING(Data, STRPOS(Data, '~@~')+3, LEN(Data)-(STRPOS(Data, '~@~')+3))
But I can't find that any equivalent to strpos exists.
User charindex:
Link
If you need your data in columns here is what I use:
Just replace ',' in the function with your delimiter (or maybe even parametrize it)
The PatIndex function should give you the location of the pattern as a part of a string.
http://msdn.microsoft.com/en-us/library/ms188395.aspx