[상세내용]
SQL DB table에 아래와 같은 명령을 주었을 때, 결과가 제대로 filtering 되지 않는 것을 발견했습 니다.
다른 SQL table에 test시에도 역시 filter 작동이 안되구요.
동일 data를 work이 SAS table로 떨군뒤 같은 명령을 수행시엔 문제없이 실행되구요. Missing key word만 이런 현상이 일어나는 것으로 보이는데 유사 사례에 대해 알고 계신 부분이 있는지 궁금합니다.
[실행안됨]
PROC SQL;
CREATE TABLE WORK.Test1 AS
SELECT t1.ODS_DATE,
t1.LOT_NO,
t1.DCC
FROM SASMART.M_LOT_PIN t1
WHERE t1.DCC NOT IS MISSING;
QUIT;
[실행됨]
PROC SQL;
CREATE TABLE WORK.Test2 AS
SELECT t1.ODS_DATE,
t1.LOT_NO,
t1.DCC
FROM WORK.Test1 t1
WHERE t1.DCC NOT IS MISSING;
QUIT;
[답변]
SAS에서 DBMS null 값과 SAS missing 값을 처리할 때 차이가 있습니다.
DBMS null 값은 데이터가 없는 것으로 해석되기 때문에 DBMS null 값을 정렬하거나 비교 연산자로 값을 평가할 수 없습니다.
하지만, SAS dataset의 missing 값은 SAS 내부에서 부동 소수점으로 해석됩니다.
따라서, SAS는 missing 값을 기준으로 정렬하거나 비교 연산자로 비교할 수 있습니다.
Catch the best of SAS Innovate 2025 — anytime, anywhere. Stream powerful keynotes, real-world demos, and game-changing insights from the world’s leading data and AI minds.