Заменить часть строки определенными символами в SQLite

Мне нужно замаскировать строковое поле, например, номер телефона «0144567890» в «014XXXX890». Только первые три и последние три символа должны остаться, другие превращают их в «X». Также я хочу сделать это динамически, что может маскировать любую длину строки. Спасибо.

Сделайте это на любом языке, который использует программа, из которой вы делаете запрос. SQL не известен своими функциями манипулирования строками.

Shawn 01.02.2019 11:32
В чем разница между методом "==" и equals()
В чем разница между методом "==" и equals()
Это один из наиболее часто задаваемых вопросов новичкам на собеседовании. Давайте обсудим его на примере.
Замена символа по определенному индексу в JavaScript
Замена символа по определенному индексу в JavaScript
В JavaScript существует несколько способов заменить символ в строке по определенному индексу.
2
1
92
1

Ответы 1

Если вы знаете, что максимальная длина строки равна, скажем, 10,
используйте этот 'XXXXXXXXXX' в качестве шаблона, из которого можно извлечь X следующим образом:

select 
  substr(col, 1, 3) || 
  substr('XXXXXXXXXX', 1, length(col) - 6)  || 
  substr(col, length(col) - 2)
from tablename

col — это имя столбца.

Другие вопросы по теме