Учитывая столбец адреса электронной почты, мне нужно найти положение знака @ для подстроки.
Что такое indexof
функция для строк в T-SQL?
Ищете что-то, что возвращает позицию подстроки в строке.
в C #
var s = "abcde";
s.IndexOf('c'); // yields 2
Учитывая столбец адреса электронной почты, мне нужно найти положение знака @ для подстроки.
Что такое indexof
функция для строк в T-SQL?
Ищете что-то, что возвращает позицию подстроки в строке.
в C #
var s = "abcde";
s.IndexOf('c'); // yields 2
Ответы:
CHARINDEX - это то, что вы ищете
select CHARINDEX('@', 'someone@somewhere.com')
-----------
8
(1 row(s) affected)
-или-
select CHARINDEX('c', 'abcde')
-----------
3
(1 row(s) affected)
Одна очень маленькая гнида, чтобы выбрать:
RFC для адресов электронной почты позволяет первой части включать знак «@», если он указан в кавычках. Пример:
"john@work"@myemployer.com
Это довольно редко, но может случиться. Теоретически, вы должны разделить на последний символ «@», а не на первый:
SELECT LEN(EmailField) - CHARINDEX('@', REVERSE(EmailField)) + 1
Больше информации:
Я верю, что вы хотите использовать CHARINDEX
. Вы можете прочитать об этом здесь .