J'ai des enregistrements d'e-mails qui incluent des caractères tels que "nr" et un nombre avec celui-ci comme exampleplenr@example.com.chnr122342 voici d'abord nr, mais après .com, je veux me débarrasser de cette partie "NR122342". Je souhaite utiliser la requête SQL pour vous débarrasser de cela pour obtenir uniquement l'adresse e-mail d'origine. Veuillez vous conseiller avec la commande SQL appropriée. P>
4 Réponses :
Vous pouvez utiliser gauche code> et
charindex code>;
charindex code> La fonction renvoie la position de l'expression que vous recherchez, dans votre cas "NR".
declare @txt as varchar(50) = 'example@example.comnr122342'
select LEFT(@txt, CHARINDEX('nr', @txt, 1)-1)
Merci pour la réponse rapide, Vererica, j'ai édité la question. Je suis dans un environnement presto et malheureusement, je ne peux pas utiliser I Charindex.
Désolé Mate ... Malheureusement, je ne peux pas vous aider avec ça. Peut-être que si vous Google, l'équivalent de la fonction Charindex à Presto, vous trouverez quelque chose :)
Utilisation de Stuff code> et
charindex code>, cela peut être possible:
SEELCT STUFF(Email, CHARINDEX('.com', Email, 1) + LEN('.com'), LEN(Email), '') AS Email
FROM TableName
Vous pouvez essayer quelque chose comme ce qui suit:
CREATE FUNCTION dbo.StringBeforeLastIndex(@source nvarchar(80), @pattern char) RETURNS nvarchar(80) BEGIN DECLARE @lastIndex int SET @lastIndex = (LEN(@source)) - CHARINDEX(@pattern, REVERSE(@source)) RETURN SUBSTRING(@source, 0, @lastindex + 1) END; GO