Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 SQL Server 2008 Forums
 Transact-SQL (2008)
 Combine REPLACE and TRIM functions?

Author  Topic 

snejsnej
Starting Member

9 Posts

Posted - 2015-03-20 : 19:13:50
Hello,

Using T-SQL r2008.
I have a long list of names that looks something like this:

Joe.Blow(797),
Fred.Rodney(801),
Melody.Razza(621),
John McEnroe,
Hamza El Din,
Johnny.Rotten,
...

I need to remove everything past the first '(', as well as replace the '.' with a space so that all names appear simply as "FirstName LastName". (As you can see, some names contain the offending characters and some do not.)

I've tried the following in my SELECT statement:

CASE
WHEN CHARINDEX('(',[AMA_WEBUSERID])>0
THEN LEFT([AMA_WEBUSERID], CHARINDEX('(', [AMA_WEBUSERID]) - 1)
WHEN CHARINDEX('.',[AMA_WEBUSERID])>0
THEN REPLACE([AMA_WEBUSERID],'.',' ')
ELSE [AMA_WEBUSERID]
END AS [AMA_WEBUSERID]


The first WHEN works as expected, so "Joe.Blow(797)" appears as "Joe.Blow"; however the period is still there.

I tried a couple of different combinations using AND to try to combine the functions, but all of them gave me syntax errors.

Any help appreciated!
Jens

robvolk
Most Valuable Yak

15732 Posts

Posted - 2015-03-20 : 19:27:49
SELECT REPLACE(LEFT([AMA_WEBUSERID]+'(', CHARINDEX('(',[AMA_WEBUSERID]+'(')-1), '.', ' ')
Go to Top of Page

snejsnej
Starting Member

9 Posts

Posted - 2015-03-20 : 20:51:04
Fantastic, thank you.
Go to Top of Page
   

- Advertisement -