如何仅选择SQL Select语句中特定符号之前出现的字符

时间:2011-11-28 16:43:09

标签: sql sql-server-2005

我在这样的数据库中有字符串:

firstname.lastname@email.com/IMCLientName

我只需要出现在@符号之前的字符。

我正在尝试在SQL中找到一种简单的方法。

2 个答案:

答案 0 :(得分:19)

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

SELECT SUBSTRING(@email,0, CHARINDEX('@',@email))

答案 1 :(得分:0)

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'作为结果。