В Microsoft SQL Server 2016 у меня есть числовой столбец со значениями различной длины. Я хотел бы отобразить последние три цифры и замаскировать остальные.
РЕДАКТИРОВАТЬ: это можно сделать просто в операторе SELECT
без прохождения процесса динамического маскирования данных (создание таблицы, установка разрешений,и т. д.)?
Например:
20639636
23155
Возвращает:
XXXXX636
XX155
Я использовал версию ответа @Alan Burstein. Значения меньше трех цифр возвращают NULL, но это не относится к моим потребностям.
WITH t AS (
SELECT 123456123 AS N UNION
SELECT 12312 UNION
SELECT 1234 UNION
SELECT 333 UNION
SELECT 22
)
SELECT t.N
, REPLICATE('X', LEN(t.N)-3) + RIGHT(t.N,3) AS N_MASKED
FROM t
;
N N_MASKED
22 NULL
333 333
1234 X234
12312 XX312
123456123 XXXXXX123