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


10

Я маю цей тип значень у стовпці таблиці

154646@8@486
45465@6464@654

тощо.

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

154646@8
45465@6464

Я можу це зробити лише для всіх @, але не на секунду

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

повертає 45, але не 45 @ Тра

Дякую :-)


Чи може @в рядку бути будь-яка кількість знаків?
Аарон Бертран

Відповіді:


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.