什么"变量=。" (variable = dot)在Oracle SQL / SAS中意味着什么?

时间:2015-06-26 17:08:24

标签: sql oracle postgresql sas

我正在将SAS脚本转换为Python,其中SAS脚本与Oracle数据库连接,Python将与PostgreSQL数据库连接。在SAS代码中,我发现了这个陈述:

proc sql noprint;
create table table_name as
  select distinct wtn
    from another_table
   where account = .
;

" where account =。"在Oracle中意味着什么或者它不是Oracle SQL的东西,而是SAS的东西?或者它是否适用于所有形式的SQL?

此外,如果它是SAS和/或Oracle特定的,我将在PostgreSQL中使用什么?

1 个答案:

答案 0 :(得分:5)

在SAS中,数字变量(包括日期变量)的缺失值显示为句点。在对数字字段进行排序时,SAS将数字空值视为等于“最低可能数”(基本上为负无穷大)。

SAS数据集将使用句点作为缺失数据的值。当您使用proc导出将数据导出为CSV时,我相信它将创建一个空值。要真正回答您的问题,您需要知道从sasdata设置到当前数据库的ETL是如何完成的。

我希望您的数据已针对您的数据库进行了规范化。因此,我认为你应该使用" IS NULL"取代" varname ='。' " 。见下文:

create table table_name as
select distinct wtn
from another_table
  where account is NULL
;

此外,字符变量的SAS缺失值显示为空白。对于字符,缺少值设置如下:if name =" none"然后名字=' '