【发布时间】:2015-03-04 20:52:44
【问题描述】:
我有一个包含一列电话号码的数据集。我想使用 PROC SQL WHERE 过滤这个数据集,数字的长度是至少 7位。
在普通 SQL 中,我可以只在数字周围应用长度函数并且它可以工作,但是在 SAS 中它不会让我将它应用到数字列。
我的第一直觉是将列转换为一个字符,然后找到它的长度,但是当我使用put 函数时,我似乎只能说明一个大小。
但是我什至不知道我的数字的最大尺寸,因为我无法计算长度!
如何使用 PROC SQL 在 SAS 中找到数值的长度?
【问题讨论】:
-
您如何处理以零开头的电话号码?格式仍然可以显示前导零,但基础数值不会,因此您的长度可能是错误的
-
@Keith 任何电话号码(至少在美国)都不能以零开头,除非它是国际号码并包含
011退出代码(在这种情况下,它会远远超过 7位数)。 -
@Joe 啊,好的。比在英国这里它们都以零开头(这就是它们主要作为字符存储在数据库中的原因)要好。我正在考虑将
VVALUE函数与LENGTH结合使用 -
很遗憾,
vvalue在 PROC SQL 中不可用。
标签: sql sas numerical string-length proc-sql