如何显示数字的最后4位,并用的替换数字的其余部分

kiz8lqtg  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(320)

如何以这种格式显示数字的最后四位:x-x-x-1234。换言之,卡号的前12位使用xs,最后4位使用实际号码。谢谢您

cwdobuhd

cwdobuhd1#

我写了一个函数,你可以用它来做这个工作:你可以把任何数字传递给这个函数,这个函数计算出这个数字的模10000类(即除以10000的其余部分),换句话说就是你的数字的最后四位数。然后函数根据需要连接x-和零。

DELIMITER $$
CREATE FUNCTION N_CREDIT_CARD 
(NUMBER INT)
RETURNS VARCHAR(19)
DETERMINISTIC
BEGIN
  DECLARE NUM INT;
  SET NUM=NUMBER%10000;
  RETURN (CASE WHEN NUM < 10 THEN CONCAT('XXXX-XXXX-XXXX-000', CAST(NUM AS CHAR(1)))
               WHEN NUM < 100 THEN CONCAT('XXXX-XXXX-XXXX-00', CAST(NUM AS CHAR(2)))
               WHEN NUM < 1000 THEN CONCAT('XXXX-XXXX-XXXX-0', CAST(NUM AS CHAR(3)))
               ELSE CONCAT('XXXX-XXXX-XXXX-',CAST(NUM AS CHAR(4))) END);
END$$
DELIMITER;

相关问题