DBM Cafe Forum » SQL » SQL Server

Zoeken naar het laatste karakter in een string

(1 bericht)
  1. Zoeken naar het eerste karakter in een string is een eitje, daar gebruiken we de CHARINDEX formule voor. Maar wat als je wilt zoeken op het laatste karakter in een string?

    Gebruik de REVERSE functie! Deze zet de string in spiegelbeeld.

    Voorbeeld: Stel we willen van alle e-mail adressen alleen de extensie bepalen (bijvoorbeeld .nl, .com, .de, etcetera). Daarvoor moeten we weten waar de laatste punt in een emailadres zich bevindt.

    Als voorbeeld nemen we onderstaand e-mailadres

    declare @EmailAdres as varchar(50)
    set @EmailAdres = 'info@pietje.puk.nl'

    Eerst de reverse functie:

    select REVERSE(@Emailadres)

    Dit geeft het volgende resultaat: ln.kup.ejteip@ofni

    Nu gaan we met de CHARINDEX zoeken naar de eerste punt in de omgekeerde string:

    select CHARINDEX('.',REVERSE(@EmailAdres))

    Dit geeft een 3 als resultaat. Ofwel de laatste punt begeeft zich drie posities vanaf het einde van het voorbeeld e-mailadres.

    Om alleen de extensie terug te geven kunnen we nu het volgende doen:

    select RIGHT(@EmailAdres,CHARINDEX('.',REVERSE(@EmailAdres)))

    Klaar!

    2 jaren geleden geplaatst #

RSS feed for this topic

Reageren

Je moet inloggen om een reactie te kunnen plaatsen.