Поскольку вы имеете дело как с номерами кредитных карт, так и с 5-значными номерами, давайте предположим, что все они могут храниться в одном из трех форматов:
Num: 1234567890123456
Char: 1234-5678-9012-3456
Char: 1234 5678 9012 3456
Давайте начнем с первого случая, которыйПредполагается, что переменная является числовой.Вы хотите исключить все 5-значные значения.Вы можете использовать этот трюк Рика Уиклина для подсчета количества цифр в целом числе:
proc sql noprint;
create table want as
select number
from have
where ceil(log10(number+1)) > 5
;
quit;
Во втором и третьем случаях они будут сохранены в виде символов.Вы можете подсчитать количество числовых символов в строке, используя countc()
с опцией D
.
proc sql noprint;
create table want as
select compress(number, ' -')
from have
where countc(number,'','D') > 5
;
quit;