2015-07-17 3 views
0

Это данные образец электронной почты в таблицеподстановочных знаков для электронной почты в SQL Server

2.3|[[email protected]] 

Ниже приведен запрос, который я работаю на некоторое время:

SELECT * FROM WS_TRANSACTION 
WHERE SERVICE_ID = 'GETUSERTOKENLOGIN' 
     AND SERVICE_ID LIKE '%@%' 

Что это, как предполагается, чтобы сделать, это предоставить мне данные из этой таблицы и сделать столбец service_id содержать только электронные письма, такие как электронная почта johnnyappleseed. Есть ли дикая карта для SQL, которая удалит этот бесполезный материал, чтобы он отображал только электронные письма, или мне нужно идти об этом по-другому?

Я попытался получить электронное письмо с помощью знака процента, но я считаю, что он удаляет все до и после @, что не то, что я хочу.

Любая помощь будет очень признательна

+0

так что вам нужно только слова перед @ по электронной почте? – HaveNoDisplayName

+0

Нет Мне нужна вся электронная почта. Мне не нужен 2.3 | [] материал. Извините, я вижу, как это может быть немного заблуждением – user4970927

+0

у вас есть обложка электронной почты между [] в вашей базе данных? – HaveNoDisplayName

ответ

0

Если длина символов в начале и в конце строки всегда то же самое, вы можете использовать влево и вправо функции, наряду с функцией LEN, как это.

SELECT LEFT(RIGHT(SERVICE_ID,LEN(SERVICE_ID)-5),LEN(SERVICE_ID)-6) 
4

Я думаю, что вы можете получить подстроки, чтобы получить электронную почту, как вы сказали, что вы должны по электронной почте обертку в квадратные скобки «[]», поэтому использовать подстроку()

Declare @a varchar(max) 
SET @a = '2.3|[[email protected]]' 
SELECT SUBSTRING(@a,CharIndex('[',@a)+1,(CharIndex(']',@a)-CharIndex('[',@a))-1); 

SEE DEMO

0

, если ваши столбцы с электронной почтой автоматически регистрируются с данными, которые вы указали, и вы хотите использовать только часть электронной почты:

replace(replace(SUBSTRING('2.3 | [[email protected]]', (charindex('[','2.3 | [[email protected]]')), LEN('2.3 | [[email protected]]')),'[',''),']','') 

Выход

[email protected] 
Смежные вопросы