Как отобразить последние 4 цифры номера и заменить оставшуюся часть числа XXXXXXXXX - PullRequest
0 голосов
/ 26 ноября 2018

Как отобразить последние четыре цифры чисел в этом формате: XXXX-XXXX-XXXX-1234.Другими словами, используйте Xs для первых 12 цифр номера карты и фактические номера для последних четырех цифр номера.Спасибо

1 Ответ

0 голосов
/ 27 ноября 2018

Я написал функцию, которую вы можете использовать для выполнения этой работы: вы можете передать этой функции любое число, функция вычисляет класс по модулю 10000 числа (т. Е. Остаток от деления на 10000), другими словами, последнеечетыре цифры вашего номера.Затем функция объединяет XXXX-XXXX-XXXX- и нули по мере необходимости.

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;
...