HiveBrain v1.2.0
Get Started
← Back to all entries
patternsqlModerate

Remove string after second specific character occures from left

Submitted by: @import:stackexchange-dba··
0
Viewed 0 times
afterleftcharacteroccuresremovesecondspecificfromstring

Problem

I have this type of values in table column

154646@8@486
45465@6464@654


etc.

How can i remove everything after second @ character ? I need to display

154646@8
45465@6464


I can do it only for all @ but not for second

SELECT REPLACE(LEFT('45@Tra@lala', CHARINDEX('@','45@Tra@lala')-1),'_',' ')


returns 45 but not 45@Tra

Thank you :-)

Solution

You can use the third parameter of charindex() that is used to specify where in the string the search will start.

declare @S varchar(20) = '45465@6464@654';
select left(@S, charindex('@', @S, charindex('@', @S)+1)-1);


Result

45465@6464

Code Snippets

declare @S varchar(20) = '45465@6464@654';
select left(@S, charindex('@', @S, charindex('@', @S)+1)-1);

Context

StackExchange Database Administrators Q#89456, answer score: 17

Revisions (0)

No revisions yet.