如何根据不同的条件将选择的数字与数字键隔离?

时间:2019-04-16 15:09:47

标签: sas

我正在尝试从具有2种类型的数字产品密钥中提取国家/地区ID:

对于SAS EG 7.1 1. 7-8位数字的密钥,前2-3位数字表示国家/地区ID。 即对于国家代码为36的美国,产品密钥为36XXXXX

对于国家代码为121的印度,产品密钥为121XXXXX

  1. 13位数字键,带有第二,第三,第四位数字表示国家/地区ID 即对于美国,产品密钥为X036XXXXXXXXX

对于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。

我需要更改数据类型吗?

1 个答案:

答案 0 :(得分:0)

您应该包括一些示例数据,以便您的问题确切显示您遇到的问题以及期望的结果,但我认为,您所需要做的就是转换{{1} }转换为数字:

country_id

您当前的代码实际上只是将三个字符'036'并存储在country_id = input(substr(key, 2, 3), best.); 中作为文本值; country_id函数将其转换为数字。