Soldan ikinci belirli karakter oluştuktan sonra dizeyi kaldır


10

Tablo sütununda bu tür değerler var

154646@8@486
45465@6464@654

vb.

İkinci karakterden sonra her şeyi nasıl kaldırabilirim? Göstermem gerek

154646@8
45465@6464

Bunu sadece @ için yapabilirim, ama ikinci için değil

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

Tra @ 45 döndürür ama 45 döndürmez

Teşekkür ederim :-)


Dizede herhangi bir @işaret olabilir mi?
Aaron Bertrand

Yanıtlar:


16

charindex()Aramanın dizede nerede başlayacağını belirtmek için kullanılan üçüncü parametreyi kullanabilirsiniz .

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

Sonuç

45465@6464
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.