Удалить строку после появления второго конкретного символа слева

10

У меня есть этот тип значений в столбце таблицы

154646@8@486
45465@6464@654

и т.п.

Как я могу удалить все после второго символа @? Мне нужно отобразить

154646@8
45465@6464

Я могу сделать это только для всех @, но не для второго

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

возвращает 45, но не 45 @ Tra

Спасибо :-)

Muflix
источник
Может ли быть любое количество @знаков в строке?
Аарон Бертран

Ответы:

16

Вы можете использовать третий параметр, charindex()который используется, чтобы указать, где в строке начнется поиск.

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

Результат

45465@6464
Микаэль Эрикссон
источник