Rimuovi la stringa dopo che si è verificato il secondo carattere specifico da sinistra


10

Ho questo tipo di valori nella colonna della tabella

154646@8@486
45465@6464@654

eccetera.

Come posso rimuovere tutto dopo il secondo carattere @? Ho bisogno di visualizzare

154646@8
45465@6464

Posso farlo solo per tutti @ ma non per il secondo

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

restituisce 45 ma non 45 @ Tra

Grazie :-)


Potrebbe esserci un numero qualsiasi di @segni nella stringa?
Aaron Bertrand

Risposte:


16

È possibile utilizzare il terzo parametro charindex()utilizzato per specificare da dove inizierà la ricerca nella stringa.

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

Risultato

45465@6464
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.