How to trim everything after certain character in

2019-02-16 21:32发布

问题:

I am trying to format the email address in my table by removing everything starting the @. Also I would like to replace the underscore with blank space.

For example: FirstName_LastName@gmail.com

I would like the above email to be changed like this: FirstName LastName

Here is my code but this trims everything after the @ and that is what i want. But how can i replace the underscore with blank. I want all in one statement using the update function. How can I do that?

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

Thanks for the help

回答1:

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


回答2:

This can be helpful if you need to remove all after the last certain character:

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))));