IndexOf function in T-SQL
Given an email address column, I need to find the position of the @ sign for substringing.
What is the indexof
function, for strings in T-SQL?
Looking for something that returns the position of a substring within a string.
in C#
var s = "abcde";
s.IndexOf('c'); // yields 2
CHARINDEX is what you are looking for
select CHARINDEX('@', '[email protected]')
-----------
8
(1 row(s) affected)
-or-
select CHARINDEX('c', 'abcde')
-----------
3
(1 row(s) affected)
You can use either CHARINDEX or PATINDEX to return the starting position of the specified expression in a character string.
CHARINDEX('bar', 'foobar') == 4
PATINDEX('%bar%', 'foobar') == 4
Mind that you need to use the wildcards in PATINDEX on either side.