2011-11-28 7 views

risposta

19
DECLARE @email VARCHAR(100) 
SET @email = '[email protected]/IMCLientName' 

SELECT SUBSTRING(@email,0, CHARINDEX('@',@email)) 
+0

Grazie, Ian, ha funzionato molto bene. –

+0

Cosa succede se il personaggio non viene trovato? per esempio. Se 'SET @email = 'firstname.lastname.email.com'', cosa verrebbe selezionato in questo esempio? – qJake

+2

@SpikeX verrebbe selezionata una stringa vuota. –

0

Sulla esempio Ian Nelson s' potremmo aggiungere un rapido controllo in modo da restituire il valore iniziale, se non troviamo il nostro indice.

DECLARE @email VARCHAR(100) 
SET @email = 'firstname.lastname.email.com/IMCLientName' 

SELECT CASE WHEN CHARINDEX('@',@email) > 0 
      THEN SUBSTRING(@email,0, CHARINDEX('@',@email)) 
      ELSE @email 
     END AS email 

Questo sarebbe tornato 'firstname.lastname.email.com/IMCLientName'. Se hai usato "[email protected]/IMCLientName", riceverai di conseguenza "firstname.lastname".

Problemi correlati