我正在尝试将字符串转换为数字并使用以下代码
选择
PROC SQL;
CREATE TABLE WORK.CLAIM_HISTORY AS
SELECT input(cats(substr(SUBSTR(t1.LIABILITY_CTRT_ID,3),1,length(SUBSTR(t1.LIABILITY_CTRT_ID,3))-6),substr(t1.LIABILITY_CTRT_ID,13)),Z10.) AS GENERAL_INSURANCE_UOE_RK,
t1.UNDERWRITING_DT
FROM work.SIN t1
LEFT JOIN work.custos_agregados_liab t2 ON (t1.CLAIM_NO = t2.CLAIM_NO)
where t2.COVERAGE_CD <> '999';
QUIT;
例如,GENERAL_INSURANCE_UOE_RK为0223963,而使用输入功能时,SAS会删除前导零并返回223963。我想使用完全相同的数字,只是格式化为数字。
谢谢。
答案 0 :(得分:2)
前导零对数值没有意义。但是您可以将Z格式附加到数字变量上,并让SAS用前导零显示该值。
请注意,您尝试将Z10.
用作INFORMAT
时,代码中还有另一个错误。没有Z
信息。只需使用普通的数字格式将字符串转换为数字即可。
select
input(cats(substr(SUBSTR(t1.LIABILITY_CTRT_ID,3),1,length(t1.LIABILITY_CTRT_ID)-8)
,substr(t1.LIABILITY_CTRT_ID,13)
)
,32.) AS GENERAL_INSURANCE_UOE_RK format=Z10.
,t1.UNDERWRITING_DT