2013-06-27 13 views
8

Próbuję sformatować adres e-mail w moim tabeli, usuwając wszystko, począwszy od @. Również chciałbym zastąpić podkreślenie pustą przestrzenią.Jak przyciąć wszystko po pewnym znaku w sql

Na przykład: [email protected]

Chciałbym powyższy e-mail aby zostać zmienione tak: FirstName LastName

Oto mój kod ale to przycina wszystko po @ i to jest to, co chcę. Ale jak mogę zastąpić podkreślenie pustym. Chcę wszystko w jednym oświadczeniu za pomocą funkcji aktualizacji. Jak mogę to zrobić?

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

Dzięki za pomoc

Odpowiedz

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

może to być przydatne, gdy trzeba usunąć wszystko po ostatniej niektórych znaków:

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

proszę umieścić swój kod w blokach kodu tak to jest łatwiejsze do odczytania. – Fencer04

Powiązane problemy