2013-06-27 9 views
8

Tôi đang cố gắng định dạng địa chỉ email trong bảng của mình bằng cách xóa mọi thứ bắt đầu từ @. Ngoài ra tôi muốn thay thế gạch dưới bằng khoảng trống.Cách cắt mọi thứ sau một số ký tự nhất định trong sql

Ví dụ: [email protected]

Tôi muốn các email trên để được thay đổi như thế này: FirstName LastName

Đây là mã của tôi nhưng điều này Trims tất cả mọi thứ sau @ và đó là những gì tôi muốn. Nhưng làm thế nào tôi có thể thay thế gạch dưới bằng trống. Tôi muốn tất cả trong một tuyên bố bằng cách sử dụng chức năng cập nhật. Làm thế nào tôi có thể làm điều đó?

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

Thanks for the help

Trả lời

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

Điều này có thể hữu ích nếu bạn cần phải loại bỏ tất cả sau khi các nhân vật nhất định lần cuối:

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

hãy đưa mã của bạn trong khối mã vì vậy đây là dễ đọc hơn. – Fencer04