왼쪽에서 두 번째 특정 문자가 발생한 후 문자열 제거


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 는 반환 하지 않습니다

감사합니다 :-)


@문자열에 몇 개의 부호 가있을 수 있습니까?
Aaron Bertrand

답변:


16

그것의 세 번째 매개 변수를 charindex()사용하여 문자열에서 검색을 시작할 위치를 지정할 수 있습니다 .

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

결과

45465@6464
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.