为什么 sas 在字符前删除零
why sas removing zero before a character
我有一个像这样的过程 sql,问题是 sas 在每个 cust_comp_key 之前删除了零,例如 FR_C_00000242 正在转换为 242,但我想保留242 之前的 zeo ...
rsubmit;
data ca_m_service_2;
set ca_m_service;
num_compte = input(substr(CUST_COMP_KEY, 6),Best12.);
run;
endrsubmit;
感谢帮助
编辑,
我用过这个:
data ca_m_service_3;
set ca_m_service;
if length(substr(CUST_COMP_KEY, 6)) >= 8 then newsic=substr(CUST_COMP_KEY, 6);
else newsic=repeat('0',8-length(substr(CUST_COMP_KEY, 6))-1)||substr(CUST_COMP_KEY, 6);
这似乎可行,但现在我需要将此向量转换为数字,我该怎么做?
您可以使用 z#。格式以用前导零填充数字。尝试:
num_compte = input(substr(CUST_COMP_KEY, 6),z8.);
或者这可能更直观:
data ca_m_service_2;
set ca_m_service;
format num_compte z8.;
num_compte = substr(CUST_COMP_KEY, 6);
run;
我有一个像这样的过程 sql,问题是 sas 在每个 cust_comp_key 之前删除了零,例如 FR_C_00000242 正在转换为 242,但我想保留242 之前的 zeo ...
rsubmit;
data ca_m_service_2;
set ca_m_service;
num_compte = input(substr(CUST_COMP_KEY, 6),Best12.);
run;
endrsubmit;
感谢帮助
编辑,
我用过这个:
data ca_m_service_3;
set ca_m_service;
if length(substr(CUST_COMP_KEY, 6)) >= 8 then newsic=substr(CUST_COMP_KEY, 6);
else newsic=repeat('0',8-length(substr(CUST_COMP_KEY, 6))-1)||substr(CUST_COMP_KEY, 6);
这似乎可行,但现在我需要将此向量转换为数字,我该怎么做?
您可以使用 z#。格式以用前导零填充数字。尝试:
num_compte = input(substr(CUST_COMP_KEY, 6),z8.);
或者这可能更直观:
data ca_m_service_2;
set ca_m_service;
format num_compte z8.;
num_compte = substr(CUST_COMP_KEY, 6);
run;