我将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中使用什么代替它?
在SAS中,数字变量(包括日期变量)的缺失值显示为一个句点。在对数字字段进行排序时,SAS将数字空值视为等于“最低可能数”(基本上为负无穷大)。
SAS数据集将以句点作为缺失数据的值。当您使用proc export将数据导出为CSV时,我相信它将创建一个空值。要真正回答您的问题,您将需要知道从sasdata设置到当前数据库的ETL是如何完成的。
我希望您的数据已经针对您的数据库进行了规范化。因此,我认为您应该使用“ IS NULL”代替“ varname =’。” “。见下文:
create table table_name as select distinct wtn from another_table where account is NULL ;
此外,SAS字符变量的缺失值显示为空白。缺少字符的值设置如下:如果name =“ none”,则name =’‘。