我在这样的数据库中有字符串:
firstname.lastname@email.com/IMCLientName
我只需要出现在@符号之前的字符。
我正在尝试在SQL中找到一种简单的方法。
答案 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'作为结果。