Data Compress_Mob;
length Mob_Phe$ 14;
Input Mob_Phe$ @@;
Cards;
13915625877 013145672561 134-7569-5214
1364524124 01045125421
;
run;
Data Mob;
set Compress_Mob;
if length(Compress(Mob_Phe,'0123456789','k'))=11 Then Do;
Mob_Phone=substr(Compress(Mob_Phe,'0123456789','k'),1,11);
if substr(Compress(Mob_Phone),1,3) in ('130','131','132','133','150','151','152','153') then do
Flag="联通";
output;
end;
else if substr(Compress(Mob_Phone),1,3) in ('134','135','136','137','158','159','138','139') then do
Flag="移动";
output;
end;
end;
else if length(Compress(Mob_Phe,'0123456789','k'))=12
and substr(Compress(Mob_Phe),1,1)='0' then do;
Mob_Phone=substr(Compress(Mob_Phe,'0123456789','k'),2,12);
if substr(Compress(Mob_Phone),2,3) in ('130','131','132','133','150','151','152','153') then do
Flag="联通";
output;
end;
else if substr(Compress(Mob_Phone),2,3) in ('134','135','136','137','158','159','138','139') then do
Flag="移动";
output;
end;
end;
run;
结果Flag变量无法正确显示,如果换位英文就可以显示,请问是什么原因,如何处理啊,谢谢啦。