Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What does "variable = ." (variable = dot) mean in Oracle SQL/SAS?

I am converting a SAS script to Python, where the SAS script was interfacing with an Oracle database, and the Python will be interfacing with a PostgreSQL database. In the SAS code, I found this statement:

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

What does "where account = ." mean in Oracle? Or is it not an Oracle SQL thing, and instead is a SAS thing? Or is it available in all forms of SQL?

Further, if it is SAS and/or Oracle specific, what would I use in PostgreSQL in its place?

like image 964
B J Avatar asked Dec 03 '25 09:12

B J


1 Answers

In SAS Missing values for numeric variables (including date variables) appear as a period. SAS treats numeric nulls as equal to “the lowest possible number” (essentially negative infinity) when sorting a numeric field.

SAS datasets will have a period as a value for missing data. When you export the data as CSV using proc export, I believe it will create a null value. To really answer your question you will need to know how the ETL from sasdata set to the current database was done.

I expect your data has been normalized for your database. Because of this I think you should use "IS NULL" in place of a "varname = '.' " . See below:

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

In addition SAS Missing values for character variables appear as blanks. Missing values are set like this for character: if name="none" then name=' '.

like image 76
invoketheshell Avatar answered Dec 05 '25 23:12

invoketheshell



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!