Как выбрать только символы перед определенным символом в операторе SQL Select - PullRequest
7 голосов
/ 28 ноября 2011

У меня есть строки в базе данных, как это:

firstname.lastname@email.com/IMCLientName

И мне нужны только символы, которые появляются перед символом @.

Я пытаюсь найти простой способ сделать это в SQL.

Ответы [ 2 ]

20 голосов
/ 28 ноября 2011
DECLARE @email VARCHAR(100)
SET @email = 'firstname.lastname@email.com/IMCLientName'

SELECT SUBSTRING(@email,0, CHARINDEX('@',@email))
0 голосов
/ 13 февраля 2018

Опираясь на пример Ian Nelson , мы можем добавить быструю проверку, чтобы мы возвращали начальное значение, если мы не найдем наш индекс.

DECLARE @email VARCHAR(100)
SET @email = 'firstname.lastname.email.com/IMCLientName'

SELECT  CASE WHEN CHARINDEX('@',@email) > 0
            THEN SUBSTRING(@email,0, CHARINDEX('@',@email))
            ELSE @email
        END AS email

Это вернет 'firstname.lastname.email.com/IMCLientName.Если бы вы использовали firstname.lastname@email.com/IMCLientName, то в результате вы получите firstname.lastname.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...