我有一个 16位 * 的信用卡号码序列,我试图覆盖该序列的 * 前4 和 * 后6* 号
CASE(target_number WHEN "C~"
THEN(LEFT(target_number, 4) +
IF(LEN(TRIM(target_number)) > 4, "*******~", "~") +
CASE(LEN(TRIM(target_number)) WHEN IS > 15 THEN
RIGHT(TRIM(target_number), 6) WHEN IS = 15 THEN
RIGHT(TRIM(target_number), 5) WHEN IS = 14 THEN
RIGHT(TRIM(target_number), 4) ELSE "~")) ELSE
target_number)
3条答案
按热度按时间s2j5cfk01#
我有一个16位信用卡号码的序列,我试图覆盖该序列的前4位和最后6位号码
如果是这样的话,我会说,有比你更简单的方法。其中一个是
p5fdfcr12#
您可以创建一个视图并屏蔽其中的数据,并为希望查看屏蔽数据的用户给予对该视图的访问权限。您应该调整regexp_replace以满足您的需要。
这就是我如何实现它。
ercv8c1e3#
您可以动态地重新生成星号,如下面的示例中所示:
其中条件中的4和6可能会根据星号的数量而被替换
Demo