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;
1条答案
按热度按时间cwdobuhd1#
我写了一个函数,你可以用它来做这个工作:你可以把任何数字传递给这个函数,这个函数计算出这个数字的模10000类(即除以10000的其余部分),换句话说就是你的数字的最后四位数。然后函数根据需要连接x-和零。