我正在尝试从具有2种类型的数字产品密钥中提取国家/地区ID:
对于SAS EG 7.1 1. 7-8位数字的密钥,前2-3位数字表示国家/地区ID。 即对于国家代码为36的美国,产品密钥为36XXXXX
对于国家代码为121的印度,产品密钥为121XXXXX
对于IN,产品密钥= X121XXXXXXXXX
使用以下代码获取此信息:
data want;
set have;
if length(key)>8 THEN COUNTRY_ID=substr(key), 2,3);
else COUNTRY_ID=substr(key,1,length(key)-5);
run;
它适用于带有7-8位数字产品密钥的第一种类型,但不适用于更长的13位数字密钥。它在国家/地区ID中显示小数 也就是说,对于美国,X036XXXX应该是36。
我需要更改数据类型吗?
答案 0 :(得分:0)
您应该包括一些示例数据,以便您的问题确切显示您遇到的问题以及期望的结果,但我认为,您所需要做的就是转换{{1} }转换为数字:
country_id
您当前的代码实际上只是将三个字符'036'并存储在country_id = input(substr(key, 2, 3), best.);
中作为文本值; country_id
函数将其转换为数字。