sql >> Databasteknik >  >> RDS >> Sqlserver

Ersätter vissa tecken i e-postadresser med '*' i en SQL-fråga

DECLARE @String VARCHAR(100) = '[email protected]'

SELECT  LEFT(@String, 3) + '*****@' 
        + REVERSE(LEFT(RIGHT(REVERSE(@String) , CHARINDEX('@', @String) +2), 2))
        + '******'
        + RIGHT(@String, 4)

Resultat

exa*****@gm******.com

Tänkte precis på en annan enklare lösning

SELECT LEFT(@String, 3) + '*****@' 
       + SUBSTRING(@String, CHARINDEX('@',@String)+1,2)
       + '*******'
       + RIGHT(@String, 4) 

Detta kommer också att ge dig exakt samma resultat.



  1. Är SQLFiddle trasig? Fel för Oracle, SQL Server, ...?

  2. Hur man skriver om ÄR SKILJER FRÅN och SKILJER INTE FRÅN?

  3. Uppdatering av databasrader utan att låsa tabellen i PostgreSQL 9.2

  4. MariaDB LAST_INSERT_ID() Förklarad