sql >> Databáze >  >> RDS >> Sqlserver

Nahrazení určitého znaku v e-mailových adresách znakem „*“ v dotazu SQL

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

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

Výsledek

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

Napadlo mě jiné jednodušší řešení

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

To vám také poskytne přesně stejné výsledky.



  1. Jak používat ALL Logical Operator v SQL Server - SQL Server / TSQL výukový program, část 126

  2. Proč byste neměli používat mysql_fetch_assoc více než jednou?

  3. Postgres převede typ PATH na ARRAY

  4. Jak zabránit aktualizacím tabulky, s výjimkou pro jednu situaci