如何修剪sql中某些字符后的所有内容

时间:2013-06-27 14:27:40

标签: sql-server tsql

我正在尝试通过删除从@开始的所有内容来格式化我的表中的电子邮件地址。另外我想用空格替换下划线。

例如: FirstName_LastName@gmail.com

我希望上面的电子邮件更改为: FirstName LastName

这是我的代码,但这会修剪@之后的所有内容,这就是我想要的。但是我怎么能用空白替换下划线。我想在一个声明中使用更新功能。我怎么能这样做?

SELECT 
     left (Email, CHARINDEX('@',Email)-1)
  FROM [Dashboard]

感谢您的帮助

2 个答案:

答案 0 :(得分:17)

SELECT REPLACE(LEFT(Email, CHARINDEX('@',Email)-1),'_',' ')
FROM [DSR].[dbo].[RCA_Dashboard]

答案 1 :(得分:0)

如果您需要在最后一个特定字符后删除所有内容,这会很有用:

Declare @String nvarchar(max) = 
  'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\log.ldf'


select reverse(substring(reverse (@String), CHARINDEX('\', reverse (@String))+1, len(reverse (@String))));