如何选择前4位和后4位的列,并使用“X”位置来表示其间的所有数字?
示例
来自user_name ='Tom';
的用户的SELECT id
Output
5958694850384567
我试图只将第一个和最后4个数字用x作为被屏蔽的任何数字的展示位置:
试图让它看起来像
Output:5958XXXXXXXX4567
到目前为止,这是我的查询:
SELECT SUBSTR(id, 1, 4) from users
where user_name ='Tom'
感谢您的时间!
答案 0 :(得分:0)
您是否考虑过使用LEFT()
和RIGHT()
功能?这些将分别从给定字符串的左侧或右侧给出特定数量的字符。
您还可以使用CONCAT()
函数组合这些来构建完整的字符串:
SELECT CONCAT(LEFT(id, 4), 'XXXXXXXX', RIGHT(id, 4))
FROM users
WHERE user_name = 'Tom'
此外,如果你不总是在字符串中有一定数量的字符,你可以通过REPLICATE()
函数和一些数学计算输出的中间部分:
SELECT CONCAT(LEFT(id, 4), REPLICATE('X', LEN(id) - 8), RIGHT(id, 4))
FROM users
WHERE user_name = 'Tom'
Oracle版本
我没有意识到您是专门使用Oracle并假设使用SQL Server,因此我将提供一些类似的代码来处理这种风格:
SELECT LEFT(id, 4) || RPAD('X', LEN(id) - 8, 'X') || RIGHT(id, 4)
FROM users
WHERE user_name = 'Tom'