-1
votes

Split Substring dans la chaîne

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.


0 commentaires

4 Réponses :


0
votes

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)


2 commentaires

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 :)



0
votes

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


0 commentaires

0
votes

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


0 commentaires