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


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

Спасибо :-)


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

Ответы:


16

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

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

Результат

45465@6464
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.