sql >> データベース >  >> RDS >> Sqlserver

SQLクエリでメールアドレスの特定の文字を「*」に置き換える

    DECLARE @String VARCHAR(100) = '[email protected]'
    
    SELECT  LEFT(@String, 3) + '*****@' 
            + REVERSE(LEFT(RIGHT(REVERSE(@String) , CHARINDEX('@', @String) +2), 2))
            + '******'
            + RIGHT(@String, 4)
    

    結果

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

    別のもっと簡単な解決策を考えただけです

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

    これにより、まったく同じ結果が得られます。



    1. COALESCEとISNULLのどちらが速いですか?

    2. PDBのプラグを抜くORA-17528エラー

    3. 非オブジェクトの関数bind_param()| PHP MySQL

    4. MySQLクエリパフォーマンスチューニング